From: Paul Eggert Date: Mon, 5 May 2025 21:02:20 +0000 (-0700) Subject: obstack: use signed chunk sizes X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ddb1ee39fa51b0793569afaa810ef4868e6f7122;p=thirdparty%2Fgnulib.git obstack: use signed chunk sizes * lib/obstack.in.h (_OBSTACK_CHUNK_SIZE_T) [!__GL_GNULIB_HEADER]: Now long, not unsigned long, since that’s what glibc does. --- diff --git a/ChangeLog b/ChangeLog index 8967f3d54f..eb0ba5d166 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2025-05-05 Paul Eggert + obstack: use signed chunk sizes + * lib/obstack.in.h (_OBSTACK_CHUNK_SIZE_T) [!__GL_GNULIB_HEADER]: + Now long, not unsigned long, since that’s what glibc does. + obstack: fix undefined behavior if big alignment * lib/obstack.c: Include stddef.h, for offsetof. (align_size_up): New static function. diff --git a/lib/obstack.in.h b/lib/obstack.in.h index 232414b6b4..d5a0ceff6d 100644 --- a/lib/obstack.in.h +++ b/lib/obstack.in.h @@ -149,7 +149,7 @@ /* For backward compatibility, glibc limits object sizes to int range. */ # define _OBSTACK_INDEX_T int # define _OBSTACK_SIZE_T unsigned int -# define _OBSTACK_CHUNK_SIZE_T unsigned long +# define _OBSTACK_CHUNK_SIZE_T long int # define _OBSTACK_CAST(type, expr) ((type) (expr)) # define _OBSTACK_CHUNK_CONTENTS_SIZE 4 #endif