diff --git a/ChangeLog b/ChangeLog index f67d886eb..30e676273 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2011-11-30 suzuki toshiya + + [apinames] Fix the overflow of signed integer hash. + + * src/tools/apinames.c (names_add): Change the type of `h' from + int to unsigned int, to prevent undefined behaviour in the + overflow of signed integers (overflow of unsigned int is defined + to be wrap around). Found by clang test suggested by Sean + McBride. + 2011-11-30 Werner Lemberg [winfonts] Remove casts. diff --git a/src/tools/apinames.c b/src/tools/apinames.c index 0348e1ab3..80c92d4eb 100644 --- a/src/tools/apinames.c +++ b/src/tools/apinames.c @@ -59,8 +59,9 @@ static void names_add( const char* name, const char* end ) { - int nn, len, h; - Name nm; + unsigned int h; + int nn, len; + Name nm; if ( end <= name ) return;