Dnia 2011-10-29, sob o godzinie 02:35 +0200, Bartosz Brachaczek pisze:
> W załączonych łatkach moim zdaniem są błędy off-by-one, podobnie
> zresztą jak jest w aktualnym kodzie libgadu. Przypadek res == size
> oznacza, że wszystkie znaki poza nullem zostały zapisane i
> implementacje niezgodne z C99, w szczególności MSVC, mogą takie coś
> zwrócić. Natomiast przypadek res == size - 1 oznacza, że wszystko
> idealnie się zmieściło. 

Nie mogę znaleźć res == size w aktualnym kodzie. Faktycznie, jest błąd
polegający na tym, że jeśli mamy idealnie dopasowany bufor, to go
powiększy jeszcze raz, ale to chyba nie jest krytyczny błąd?

Poza tym, nie wiem czy można sobie spokojnie kopiować va_list jeśli nie
ma va_copy(). Sam to wymyśliłeś, czy wzorowałeś się na czymś?

> Ponadto w pętli dla nie-C99 brakowało
> dodatkowych va_copy(). Kolejny problem to brak implementacji va_copy()
> dla MSVC.

Tyle że va_copy() pojawiło się oficjalnie w C99. Wydaje mi się, że jeśli
na danej platformie jest vsnprintf() zgodne z C99, ale <stdarg.h> już
nie, to ma dużo większe problemy niż libgadu ;)

Pozdr,
Wojtek

_______________________________________________
libgadu-devel mailing list
libgadu-devel@lists.ziew.org
http://lists.ziew.org/mailman/listinfo/libgadu-devel

Reply via email to