SPECS: moc.spec - up to 2.4.1

Jakub Bogusz qboosh w pld-linux.org
Śro, 8 Lis 2006, 18:30:30 CET


On Wed, Nov 08, 2006 at 06:24:37PM +0100, sparky w pld-linux.org wrote:
> On Wed, Nov 08, 2006 at 04:37:13PM +0100, Marek Guevara Braun wrote:
> 
> > ok. doszedłem - jak user nie ma ustawionego HOME_ETC to funkcja
> > void options_init () wykonuje
> > 
> > char* moc_dir = getenv("HOME_ETC");
> > i przypisuje NULL, następnie wykonujemy
> > strcat(moc_dir,"/.moc");
> > i mamy SIGSEGV :-)
> > 
> > ustawienie HOME_DIR pomaga.
> > 
> > Pewnie patch do poprawy: jak getenv("HOME_ETC") da NULL to brać $HOME...
> 
> dokladnie napisales co trzeba zrobic a patcha nie widze... :P
> 
> > PS. Czy strcat(moc_dir,"/.moc") nie nadpiszemy kolejnych wpisów
> > zmiennych środowiskowych ? Nie boli nas to ?
> 
> 
> a to getenv() nie zwraca kopii zmiennej ?
> stdlib.h mowi:
> /* Return the value of envariable NAME, or NULL if it doesn't exist.  */
> whec w sumie nie wiadomo :P
> 
> choc nawet jesli zwraca kopje i tak jej rozmiar moze byc za maly
> wiec lepiej, malloc() dlugosci len() + 6 i skopiowac

Nie zwraca kopii i oczywiście nie można tam wpisywać więcej niż aktualna
wartość. Wpisując za dużo można zniszczyć także dane bardziej istotne niż
dalsza część środowiska.


-- 
Jakub Bogusz    http://qboosh.cs.net.pl/


Więcej informacji o liście dyskusyjnej pld-devel-pl