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