⇽ Einträge 11 bis 8Einträge 3 bis 1 ⇾

Kein Wunder dass C so verschrien ist...

2005年09月26日 (月曜日) 00時31分
Tags: Hecking

... wenn die Leute so verschissenen Code schreiben, brauchen sie sich auch nicht wundern wenn jeden Tag zig neue Sicherheitslöcher gefunden werden.

client/src/commands.c:
[...]
void SkilllistCmd(unsigned char *data, int len)
{

    char *tmp, *tmp2, *tmp3, *tmp4;
[...]
            strncpy(name, data , (uint32)tmp2-(uint32)data );
[...]
  

Quelle: Daimonin MMORPG»

Von der "kreativen" Indentation mal abgesehen - HACKTS? Ratet mal was passiert, wenn man versucht, Daimonin auf x86-64 zu spielen. Richtig, es SEGVed noch im Ladebildschirm!

Dass der Code überhaupt irgendwo funktioniert ist schon ein Wunder an sich. Die Verwendung von unsigned char * und char * wechselt im Code frei Schnauze. Und wenn die beiden aufeinandertreffen, castet man halt schnell auf uint32. Nein, nicht uint32_t, wie man es in jeder anständigen stdint.h findet, uint32 muss es sein. Schon mal was von ptrdiff_t gehört? Nein? Liegt vielleicht daran, dass stdlib.h gleich gar nicht eingebunden wird! Und malloc, free, strtoul etc. legt der Weihnachtsmann unter den Baum.

Es wird gemeinhin behauptet, es wäre nicht möglich, 100% sicheren Code zu schreiben. Das ist Schwachsinn, Microsoft deluxe. Es ist vielleicht nicht einfach, aber wer's nicht kann soll bitte nicht C nehmen.


Nachtrag: Anscheinend liefert der Server sowieso gerade nur Null-Bytes statt Charakterdaten, was den Client mangels Fehlerbehandlung in die nächste SEGV schickt.

Courier sux

2005年07月06日 (水曜日) 12時17分

courier»tcpd stinkt. socat» rockt.

how to live without couriertcpd:
TLS_CERTFILE=/etc/exim/cert TLS_PROTOCOL=TLS1 socat \
TCP6-LISTEN:993,fork EXEC:"/usr/bin/couriertls "\
"-server -remotefd=4 /usr/sbin/imaplogin "\
"/usr/bin/imapd Maildir",fdin=4,fdout=4
  

Wenn jemand 'nen imapd (mit SSL/TLS) empfehlen kann, der Maildir kann...

(Hintergrund:)
0. ist das ding extrem Unintuitiv. Und ich wohl zu "normal" um's zu configen.
1. ich darf nicht als root compilieren? wtf! das ist meine SANDBOX Leute!
2. braucht erst mal ./configure in der authlib ewig. Jedes subdir extra, was soll das?
3. darf man erst mal per Hand paar Makefiles editieren und vergessene (courier-eigene!) Libraries in die *_LDADD eintragen
4. linken die gleich mal so 'ne .so gegen 'ne .a
5. war es nicht möglich, den imapd-ssl.rc-Wrapper dazu zu bringen, den couriertcpd auf Port 993 zu binden. Landete immer auf 585, weiss der Teufel warum - irgendwie passiert da total der commandline-Voodoo.
6. loggt das ding rein gar nichts, trotz laufendem courierlogger
7. funzt das auch auf Port 585 nicht, der wird gleich wieder geschlossen.
8. und überhaupt.

P.S.: das ist die "stable" Variante von courier, nicht der snapshot.