Martin Wodrich <[EMAIL PROTECTED]> wrote on 05.02.06:

> Michael Heydekamp <[EMAIL PROTECTED]> schrieb am 02.02.06 um 17:08:

>> Dadurch kommt es zu einer Nachricht ohne abschließendes CRLF, was
>> wiederum dazu führt, daß alle nachfolgenden Strings unmittelbar an
>> das Ende der Signatur angehängt werden (u.a. mit der Folge, daß ein
>> MIME- Boundary nicht mehr erkannt werden kann oder eine nachfolgende
>> Nachricht mit der vorherigen zusammengezogen wird).  Ich würde das
>> sogar als einen relativ kapitalen Bug bezeichnen (kleine Ursache,
>> große Wirkung).

> Also würde ich ein relativ zeitnahes Recompilat der RC4 vorschlagen.
> Und zwar sobald meine Änderungen von Heute sauber getestet sind.

Hmm, wollen wir nicht vielleicht den nächsten RC erst fertigstellen?   
Noch eine Zwischenversion, weiß nicht...  Und extra eine RC-Nummer dafür
zu "verbraten" fänd ich jetzt auch übertrieben.

>> Eine der typischen und unzureichend abgesicherten Annahmen in XP,
>> denn wenn man in xpglobal.pas neue Strings für die
>> Versionsbezeichnung einträgt und dabei nicht unmittelbar auf die Idee
>> kommt "Moment, da war doch in sowieso.pas was mit einer auf 50
>> Zeichen begrenzten Signatur", dann kommt es zu solchen Folgen.

> Es ist xp6s.inc wo die Werbe-Signatur und die Tearline gebaut werden.
> In xp6.pas wird die XP_ID declariert.

War mir klar, daß es in der Ecke sein muß.  Aber was ich meinte, war:
Das sind so typische Routinen, die entstehen, wenn jemand alleine an
einem Programm arbeitet.  Der hat dann eine relativ gute Chance, daß ihm
beim Bauen solcher Strings einfällt "Da war doch was...".  Zumal die
sich zu Zeiten von v3.12 und davor ja auch nicht ganz so oft in der
Gesamtlänge geändert haben.

>> Der Fix wäre:
>> a) Sicherstellen, daß keine Signaturen länger als 48 Zeichen erzeugt
>>    werden (oder alternativ die Variable vergrößern), und

> Also Variable verlängern, da sie sonst immer mal wieder an seine
> Längengrenze stossen könnte. Jetzt 80 Zeichen + Absicherung nach
> 78 Zeichen.

Ok.  78 Zeichen find ich auch einen sinnvollen Wert.

Trotzdem bin ich der Meinung, daß das "Halloween" an der Stelle gar nix
zu suchen hat.

>> b) zusätzlich sicherstellen, daß selbst bei versehentlich längeren
>>    Strings auf jeden Fall ein CRLF angehängt wird (z.B. indem man ein
>>    'truncstr(s,sizeof(variable)-3)' davorschaltet).  Das sieht dann
>>    bei gekürzten Strings zwar unschön aus, führt aber wenigstens zu
>>    einer technisch sauberen Nachricht.

> Ebenfalls geschehen.

Gut.  Man sollte natürlich zukünftig trotzdem darauf achten, daß die
Summe aller für die Signatur verwendeten Variablen (inkl. Leerzeichen)
nicht länger als 78 Zeichen wird.  Vielleicht wäre ein Kommentar in
xpglobal.pas angebracht.


        Michael
------------------------------------------------------------------------
FreeXP Entwickler-Mailingliste
Dev-List@freexp.de
http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list

Antwort per Email an