Tuesday, December 02, 2008

Moi à ma maison, je patche mes int. overflow avec calloc.

Pouette les moulasses,

Je resors de ma Tombe.java pour mettre en valeur un super patch bien moisi from VLC. :)

http://git.videolan.org/?p=vlc.git;a=commitdiff;h=d19de4e9f2211cbe5bde00726b66c47a424f4e07

Depuis quand calloc() *DOIT* checker les integer overflows? Minusk et FreeBSD le font avec dmalloc et jemalloc mais pas phkmalloc (d'après mes souvenirs).

Qu'est-ce qui se passe si i_index_count est à 0xFFFFFFFF ? Sbam ?


int main(int ac, char **av)
{
size_t index = 0xFFFFFFFF;

char *coin = calloc(index + 1, sizeof(int));
char *coinn = malloc((index + 1) * sizeof(int));

printf("%p\n", coin);
printf("%p\n", coinn);
}


OK avec 0x7FFFFFFF ou 0x80000000.

Humpf. Faut qu'on m'explique ?

UPDATE: Ah bein le patch vient d'être mieux à jour. Saymieux.

PS: clem1.be devient provisoirement (jusqu'au 20 décembre) clem1.prout.be.