[Allegro] a30 / Parallelen zwischen FLEX und JOB

Thomas Berger ThB at Gymel.com
Mi Feb 8 13:32:52 CET 2012


Lieber Herr Eversberg,

>> Der Kontext der Bemerkung war aber derjenige, dass das Argument fuer
>> sleep zwar nur eine Zahl mit maximal etwas ueber 20 Vorkommastellen
>> sein /darf/, dafuer aber vorbereitetend die tendenziell 2MB grosse
>> iV in einen 255 Zeichen fassenden Speicherbereich umkopiert wird.
> Das ist nicht der Fall. Es wird nur der C-Befehl  atoi(...) angewandt
> auf entweder das hinter sleep noch folgende oder, mangels dessen,
> auf den unkopierten iV-Inhalt. Raus kommt dabei stets etwas, und
> ohne Gefahren, und zwar 0, falls der betr. String nicht mit Ziffer
> oder + oder - beginnt. Wo sehen Sie da noch eine Gefahr?

es wird prophylaktisch die iV (inpu) in einen 255 Zeichen grossen
Bereich "iV" kopiert, wie ich gerade erst bemerke sogar dann, wenn
ein Argument zu sleep in der Jobzeile explizit folgt. D.h. selbst
ein simples

sleep 1

kann acon zum crashen bringen, je nachdem, was zufaellig in der iV
steht...

viele Gruesse
Thomas Berger


    case SLEEP:
		{ char iV[255];
         strcpy(iV,inpu); // iV sichern!
         int i=0; while(tsk[i]==' ') ++i;
		 if(tsk[i]) strcpy(iV,tsk+i);  // wenn dname ohne Pfad, dann ../etc/dname !!!
       int z=atoi(iV);





Mehr Informationen über die Mailingliste Allegro