On Thu, Apr 21, 2005 at 12:38:55AM +0200, Arkadiusz Miskiewicz wrote: > On Thursday 21 of April 2005 00:28, Patrys :: Patryk Zawadzki wrote: > > Dnia 20-04-2005, śro o godzinie 23:31 +0200, arekm napisał(a): > > > +- fseek(stream, size + 1, SEEK_CUR); > > > ++ /* skip size + 1 bytes */ > > > ++ buf = alloca(size + 1); > > > ++ fread(buf, 1, size + 1, stream); > > > > Wygląda na workaround metodą gwałtu analnego :D > Pomijając, że nie sprawdza czy alokacja się udała (wynik fseeka też nie był > sprawdzany choć hmm, chyba jak fseek się nie uda to po prostu nic się nie > zmienia jeśli chodzi o wskaźnik pozycji w strumieniu) to z czym jest problem? > > Tak czy siak nadal jeszcze sporo mu schodzi czasami na zapisywaniu > zaktualizowanej bazy. ;/
Jeszcze drugi podobny fseek() został - tylko z odczytaną 16-bitową liczbą jako parametrem. BTW: temu powyższemu nie zdarza się mieć jakiegoś dużego argumentu? Myślałem o sprawdzaniu size i w zależności od niego robienia fread() lub fseek() - bo jak skądś się weźmie duża liczba 32-bitowa (choćby z uszkodzonego indeksu), to poleci... -- Jakub Bogusz http://cyber.cs.net.pl/~qboosh/ _______________________________________________ pld-devel-pl mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl
