rpmmen -> patch zmieniajacy tablice struktur na tablice wskaznikow

Paweł Kołodziej pawelk w pld.org.pl
Czw, 20 Maj 1999, 16:48:05 CEST


[czwartek, 20 maj 1999], Wojtek Bojdol napisał(a):

> 
> 
> On Wed, 19 May 1999, [iso-8859-2] Paweł Kołodziej wrote:
> 
> > > -	free(pkgs->packages);
> > > +/*	free(pkgs->packages); */
> > 
> > A, tego nie rozmiem. Mógłbyś myjaśnić dlaczego to zakomentowałeś ?
> 
> pkgs->packages bylo deklarowane jako tablica (costam *packages[cyfra])

??? A w twoim patchu stoi:

 typedef struct {
-       TPkgInfo *packages;
+       TPkgInfo **packages;

Czyli jednak powinno być to mallocowane i free'owane.  

> > > +	char *tmp;
> > > +	tmp=malloc(strlen(dest)+4+4+4+2);
> > 
> > ??? te trzy czwórki to rozmumiem, ale ta dwójka ? IMHO tam powinno być
> > +4+4+4+1
> 
> marooodzisz...:) o jeden za duzo i juz sie rzucasz..:)

Gdybyś tam napisał 14 to może bym nawet nie zauważył, ale jak już to
rozpisałeś, to usilnie próbowałem znaleźć na to jakieś loginczne
uzasadnienie...

> > > +	if (pkgs->numPackages>TPkgSetDefRoz)
> > > +		pk=realloc(pkgs->packages,pkgs->numPackages*sizeof(*pk));
> > 
> > podśwaidomie czuje, że pragnołeś napisać:
> >  +		pk=realloc(pkgs->packages,(++pkgs->numPackages)*sizeof(*pk));
> > mam rację ? IMO inaczej to nie ma najmniejszego prawa działać (chyba że coś
> > przeoczyłem).
> 
> ee...pragnalem napisac:
> +  if ((++(pkgs->numPackages))>TPkgSetDefRoz)
> :))

i słusznie :)

> 
> > 
> > > @@ -99,7 +102,7 @@
> > >  	}
> > >  	pkgs = (TPkgSet *) malloc(sizeof(TPkgSet));
> > >  	pkgs->numPackages = 0;
> > > -	pkgs->packages = NULL;
> > > +/*	pkgs->packages = NULL; */
> > 
> > ???? jesteś pewny poprawności powyższego ? Wedłóg mnie to w tej wersji tam
> > pownien być malloc. ? W konsekwencji tego co napisałeś  pkgs->packages nie
> > jest nigdzie allokowane. A potem dla pierwszych 200 pakietów w addPackage() 
> > jest:
> > pkgs->packages[pkgs->numPackages-1]=pktmp;
> > czyli pisanie do pamięci która nie zostałą _nigdzie_ przydzielona - IMO
> > powinien to być natychmiastowy SIGSEV.
> 
> opis tego dalem troche wyzej
> to co mowisz byloby w przypadku deklaracji:
> costam **packages;

przecież właśnie tak jest...

-- 
Paweł Kołodziej
pawelk w pld.org.pl
http://www.ids.pl/~pkollegu  <- tu jest PePeSza (automat dla tłumaczy .pot'ow)



Więcej informacji o liście dyskusyjnej pld-installer