* lib/malloc/dynarray_emplace_enlarge.c, lib/malloc/dynarray_resize.c:
Include stdckdint.h, not intprops.h.
* lib/malloc/dynarray_emplace_enlarge.c:
(__libc_dynarray_emplace_enlarge):
* lib/malloc/dynarray_resize.c (__libc_dynarray_resize):
Prefer stdckdint.h to intprops.h macros.
* modules/glibc-internal/dynarray (Depends-on):
Depend on stdckdint, not intprops.
---
 ChangeLog                             | 10 ++++++++++
 lib/malloc/dynarray_emplace_enlarge.c |  4 ++--
 lib/malloc/dynarray_resize.c          |  4 ++--
 modules/glibc-internal/dynarray       |  2 +-
 4 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 0b8e61c123..3528faf40e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2023-05-01  Paul Eggert  <egg...@cs.ucla.edu>
 
+       dynarray: prefer C23 style overflow checking
+       * lib/malloc/dynarray_emplace_enlarge.c, lib/malloc/dynarray_resize.c:
+       Include stdckdint.h, not intprops.h.
+       * lib/malloc/dynarray_emplace_enlarge.c:
+       (__libc_dynarray_emplace_enlarge):
+       * lib/malloc/dynarray_resize.c (__libc_dynarray_resize):
+       Prefer stdckdint.h to intprops.h macros.
+       * modules/glibc-internal/dynarray (Depends-on):
+       Depend on stdckdint, not intprops.
+
        mktime: prefer C23 style overflow checking
        Prefer stdckdint.h macros to intprops.h macros where either will do,
        as this is the C23 standard.  Also, it ports around a pcc bug.
diff --git a/lib/malloc/dynarray_emplace_enlarge.c 
b/lib/malloc/dynarray_emplace_enlarge.c
index 7da539316c..65aabb1e4a 100644
--- a/lib/malloc/dynarray_emplace_enlarge.c
+++ b/lib/malloc/dynarray_emplace_enlarge.c
@@ -22,7 +22,7 @@
 
 #include <dynarray.h>
 #include <errno.h>
-#include <intprops.h>
+#include <stdckdint.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -56,7 +56,7 @@ __libc_dynarray_emplace_enlarge (struct dynarray_header *list,
     }
 
   size_t new_size;
-  if (INT_MULTIPLY_WRAPV (new_allocated, element_size, &new_size))
+  if (ckd_mul (&new_size, new_allocated, element_size))
     return false;
   void *new_array;
   if (list->array == scratch)
diff --git a/lib/malloc/dynarray_resize.c b/lib/malloc/dynarray_resize.c
index 7ecd4de63b..014f98c330 100644
--- a/lib/malloc/dynarray_resize.c
+++ b/lib/malloc/dynarray_resize.c
@@ -22,7 +22,7 @@
 
 #include <dynarray.h>
 #include <errno.h>
-#include <intprops.h>
+#include <stdckdint.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -42,7 +42,7 @@ __libc_dynarray_resize (struct dynarray_header *list, size_t 
size,
      over-allocation here.  */
 
   size_t new_size_bytes;
-  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
+  if (ckd_mul (&new_size_bytes, size, element_size))
     {
       /* Overflow.  */
       __set_errno (ENOMEM);
diff --git a/modules/glibc-internal/dynarray b/modules/glibc-internal/dynarray
index 668959482e..f78aea7f1a 100644
--- a/modules/glibc-internal/dynarray
+++ b/modules/glibc-internal/dynarray
@@ -17,8 +17,8 @@ builtin-expect
 gen-header
 libc-config
 stdbool
+stdckdint
 stddef
-intprops
 
 configure.ac:
 AC_PROG_MKDIR_P
-- 
2.39.2


Reply via email to