Konzistentnost serveru - jak zabezpecit?

David Rohleder davro na ics.muni.cz
Úterý Prosinec 7 17:10:57 CET 1999


pajasoft na fonet.cz (Ing. Pavel PaJaSoft Janousek) writes:

> > > No, nevim. Spise mam dojem, ze je to obvykle tim, ze funkce gets() z
> > > historickych duvodu je takova, jaka je. Spise nez prasackosti bych to
> > > nazval opomenutim (misto gets() pouzivat fgets()). Dale je nekontrolovanim
> > > velikosti stringu u strcpy() - IMHO asi nejcastejsi pricina
> > > overflows.
> > 
> > Programator, ktery pouzije strcpy bez toho, aby mel zajistene, ze na
> > konci retezce bude 0 je prasatko.
> 
> 	Jenze ono nekdy zjistit to, zda-li na konci to '\0' skutecne je muze
> byt docela alchymie - na nejake '\0' skutecne (na 99.99%) narazime, ale
> je to to 'nase' hledane?

Pokud ho najdu drive, tak nemuze dojit k preteceni
bufferu. Nejjednodussi je po alokaci pouzit promenna[BUFSIZ-1] = 0 ;

Pokud se binarni nula vyskytuje ve vstupu, tak to neni retezec, ale
binarni data, na ktere se pouzivaji jine funkce.


-- 
-------------------------------------------------------------------------
David Rohleder						davro na ics.muni.cz
Institute of Computer Science, Masaryk University
Brno, Czech Republic
-------------------------------------------------------------------------


Další informace o konferenci Linux