[FreeBSD] memoria - regi gimp-gond

Aries aries at bsd.hu
2001. Jan. 23., K, 19:12:55 CET


Hell!

On Thu, Jan 18, 2001 at 07:43:38PM +0100, Miklos Niedermayer wrote:
> > > string string1, string2; string1="hello" ; string2="world!" aztan
> > > cout << string1+string2, majd csinald meg u.ezt c-ben, strcpy-vel.
> >                                                          ~~~~~~
> > Es itt a buffer overrun... Persze lehet strncpy-vel jatszani, meg elore
> > megnezni a string hosszat, aztan az alapjan lefoglalni az uj stringet,
> > de ezek utan pont ott vagy, mintha a C++ string osztalyat hasznaltad
> > volna (kb. ugyanannyi muvelet), csak neked kell helybe megirnod, ami
> > tobb idobe telik, olvashatatlanna teszi a kodot, es ha elbaltazod, akkor
> > meg meg is kell keresni a hibat.
> 
> Szívemből szóltál!  Nézzük már meg a security hole-okat mostanában, hát
> nem kis százalékuk buffer overflow-jellegű.  De nem csak securityről van

Security szempontjabol nem ertem miert baj az, ha az ember folyamatosan
figyeli, hogy mit mekkorarra foglal le, es asszerint kalkulal. Arra viszont
felhivnam a figyelmet, hogy a string osztaly minden kolke 20k-t zabal...
En inkabb maradok az strcpy-nel :)

> szó: ha egyszerűen ott van egy hiba, az már baj.  Operator overloadinggal
> könnyedén elkészítheted C++-ban a saját operátoridat, csak egy példa:
> 
>    mytype x,y;     //"mytype" legyen mondjuk egy diszkrimináns

De ne ragadjunk le a C++-nal. Ott a Java, ott nincs operator-overloading :)

> És szépen elkészíted a megfelelő rutinokat, hogy a típusod "transzparens"
> módon végezze el a saját értékének meghatározását, stb.
> 
> Vagy pl mondhatsz ilyet:
> 
>    x=y*6;

De ez mar csak csicsa, Windoz :) Nem ertem, miert rosszabb, ha
x=times(y,6)-ot irok. Szamomra atlathatobb is, mert tudom, hogy
epp most milyen fuggvenyt hasznalok -> debugolasnal nem gabalyodok
bele abba, hogy mit hol merre definialtam felul.

> Nem igazán vettem még észre, hogy a C++ lassabb lenne, mint mondjuk egy
> normál C alkalmazás.  ASM-mel nem tudom viszonyítani, mert egyszerűen
> senki nincs, aki megírná ASM-ben ugyanazt, mint C++-ban.  Ha pl.
> adatbáziskezeléshez, egyfajta frontendnek használom, akkor meg úgyis az
> adatbázisszerver fogja meghatározni a teljesítményt, viszont el sem lehet

Nem az ilyen jellegu programoknal jon elo az ASM ertelme. Persze attol ova
kell inteni mindenkit, hogy portokra nem irni (linux alatt) int 0x80-at nem
agyba-fobe hasznalni, viszont talan erdemes megnezni - ezzel peldalozni
a maniam - az ftp://ftp.scene.org/pub/parties/2000/... es ott a 4K illetve
a 64K dolgokat megnezni. Komplett hang- video rendszer, relative gyors stb.
Persze nem azt mondom, hogy egy rendszert lehet vagy szabad trukkokre
epiteni, de a lo tuloldalara se kellene atesni.
bye,
-- 
    _    _
|. ( \  / )  |.http://vlug.vein.hu/~aries  - not yet :( -   .|
|.    \/ries |.       The Flame Machine      .|.br%cmds%cult.|



További információk a(z) BSD levelezőlistáról