On Wednesday 01 October 2003 09:17, Peter Ross wrote: > Angenommen, da stehen 10 oder 14 Byte, alloziiere ich sie, und stelle beim > Fuellen fest, dass da etwas nicht stimmt - bei 10 wird der dritte > nicht mehr in das Array gesteckt und bei 14 darf ich mir Gedankn drueber > machen, ob ich das als kritisch ansehe oder nur eine Warnung auswerfe. > > Ich weiss gerade nicht wo, aber ich habe auch schon mit Strings zu tun > gehabt, die nullterminiert waren und wo im Header davor die Laenge stand. > > Ich wuerde bestimmt nicht strcpy verwenden, um das nach > Headerlaengenangabe allozierte char-Array zu fuellen, sondern strncpy, und > dann auch noch das letzte Byte "nullen". > > Alles andere waere Leichtsinn des Programmiers. Das Gleiche wuerde ich bei > dem Vertrauen auf die Laengenangabe bei ASN.1 auch sagen.
Du bist nie Hiwi in einer Netzwerke-Vorlesung gewesen, oder? (Und ich will damit nicht behaupten, da� NUR Studenten solche Implementationen produzieren). > Wenn ich dagegen den Typ nicht kenne und ueberspringe, bleibt mir gar > nichts weiter uebrig, als nach 10 oder 14 Byte weiterzulesen - und dann > interpretiere ich z.B. die letzten zwei Bytes des letzten Integer > (Beispiel 14 Bytes) Und wenn das sinnvoll erscheint, parse ich da weiter > und fuelle Strukturen, die natuerlich unsinnige Inhalte bekommen, oder > ueberspringe wieder (weil ich den Datentyp wieder nicht kenne). > > Naja, nicht schoen, aber "dumme" Werte kann ich auch ohne das uebertragen, > das verbietet auch XML nicht. Den Test, auf "Sinnlosigkeit" kann mir die > syntaktische Pruefung nicht abnehmen. Ein XML-Dokument ist entweder wohlgeformt oder nicht. Es kann nicht aus dem Takt geraten und am Ende ohne Fehler ankommen. Andererseits existieren ASN.1-Codierungen, die zwei valide Interpretationen haben, je nachdem ob man die �u�eren oder inneren L�ngenangaben verwendet, um sie durchzulesen (Leider habe ich diese Vorlesungsunterlagen nicht mehr). > Beides sind halt kaputte Datenstroeme und wir sind immer noch bei "Mach, > was ich sage" statt bei "Mach, was ich dir sagen will"-Maschinen;-) XML signalisiert den Fehler immer, wenn die Tag Structure nicht nested. Bei ASN.1 ist dies nicht zwingend der Fall. Kristian
