Security
Vasilis Vasaitis
v.vasaitis at sms.ed.ac.uk
Sun Dec 5 05:38:02 EET 2004
On Sat, Dec 04, 2004 at 12:58:26PM +0200, Filippos Slavik wrote:
> On Friday 03 December 2004 11:37, John Kostaras wrote:
> > int[] array = new int[10];
> >
> > Av sto parapavw array eisageis p.x. 12 akeraious tote n C dev kavei elegxo
> > opws kavei p.x. n Java me apotelesma va sou epitrepei va grafeis kai pera
> > apo to 10-o stoixeio tou array. Ekei mporeis va baleis esu grammes kwdika
> > pou 8a graftouv pavw sto programma pou akolou8ei. M' autov tov tropo
> > ektelouvtai oi evtoles pou 'bales esu avti gia to kavoviko programma!
>
> Exw papsei na grafw kwdika se C/C++ edw kai 7-8 xronia (grafw pleon mono se
> Java) kai den parakolou8w ka8olou ta tektenomena sthn pereterw anaptyksh ths
> glwssas.
>
> 8a me endiafere plhroforiaka (pleon), ti exei ginei me thn C me'uto to 8ema?
> Yparxoun commonly accepted texnikes (peran tou oti o developer problepei kai
> kanei elenxous gia overflows stis data domes tou) gia thn apofygh tetoiwn
> problhmatwn ?
Στη C δεν έχει γίνει τίποτα, όπως τα άφησες έτσι είναι και τώρα.
Γενικά, και στις δύο, ας μη ξεχνάμε ότι οι υψηλές επιδόσεις είναι πολύ
σημαντική σχεδιαστική παράμετρος, οπότε ο έλεγχος ορίων στους πίνακες
είναι απαγορευτικός.
Στη C++ πάντως έχεις το vector, όπου μπορείς, για την προσπέλαση
ενός στοιχείου, αντί για [] να χρησιμοποιείς την .at(). Αυτή κάνει
έλεγχο ορίων και πετάει exception αν κάτι πάει στραβά. Και αν βαριέσαι
να γράφεις τους έξτρα χαρακτήρες (αν και, αν έχεις συνηθίσει να
γράφεις .elementAt(), μάλλον δε βαριέσαι), μπορείς να φτιάξεις μια
τετριμμένη υποκλάση που ο τελεστής [] απλά καλεί την εν λόγω συνάρτηση
και να ξεμπερδεύεις.
Άλλωστε, να μη ξεχνάμε, σε γλώσσες που δεν έχουν το σχετικό έλεγχο
ορίων είναι σχετικά εύκολο να προσθέσεις εσύ από πάνω, και έχεις την
σχετική επιλογή. Ενώ το αντίθετο γενικά δεν ισχύει...
> Thanks
> Slavikos
>
> --
> ####################################################################
> Filippos Slavik
> FORTHnet R&D, Heraklion, Greece
> e-mail : fsla at forthnet.gr
> phone : (+30) 2811 391230
> Key ID: 0xF4B5B375 Filippos Slavik(search pgp.mit.edu)
> Key FingerPrint: 81D4 25D0 01EB 9DCA 62E4 B694 20E7 31FB F4B5 B375
> ####################################################################
>
> "The software said 'runs on Win95 or better,' so I installed it
> on Linux..."
Κάνε κάτι, συμμάζεψε όλο αυτό το τέρας, ρίξε μια συμπίεση που λέμε.
--
Vasilis Vasaitis
"A man is well or woe as he thinks himself so."
More information about the Linux-greek-users
mailing list