Softwäjhrentwicklung des tages

Die programmierer der beliebten skriptsprache python kriegen es tatsächlich hin, beim parsen einer fließkommazahl in einer zeichenkette einen bufferüberlauf zu haben, den man unter umständen zum unterjubeln von beliebigem kohd nutzen könnte. Haben die das tatsächlich selbst geproggt? Ich meine: selbst wenn man es nicht weiß, könnte man sich doch vorstellen, dass das parsen von fließkommazahlen eine derartig häufige standardaufgabe ist, dass das schon die standardbibliotek können müsste. Und in der tat, sie kann das auch. strtod (const char *, char **endptr) liefert schön die zahl als double (gibts natürlich auch in einer versjon für float und long double), und wenn ein pointer auf einen char * übergeben wurde, wird darin abgelegt, an welcher stelle in der zeichenkette das parsen abbrach. Wenn man anständigen kohd schreibt, setzt man vorher errno auf 0 und schaut hinterher nach, ob bei der umwandlung ein fehler aufgetreten ist, den man dann besser behandelt. Aber das ist heutigen proggern einer skriptsprache wohl zu altmodisch, dass man einfach bewährten und vermutlich vollständig entfehlerten bibliotekskohd benutzt, wenn er schon da ist. Vermutlich habe sie gerade an der uni gelernt, wie man das macht, und da wollten sie sich gleich mal dran probieren, obwohl das deutlich mehr als vier zeilen wurden… 🤦‍♂️️

Oder hat python etwa ein anderes zahlenformat als C? Das wäre mir jedenfalls noch nicht aufgefallen. (Nein, ich habe nicht die ganze referenz durchgelesen, als ich zwischendurch mal ein paar sachen in python geproggt habe…)

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.