diff options
| author | Paul Eggert | 2024-07-14 23:37:50 +0100 |
|---|---|---|
| committer | Paul Eggert | 2024-07-16 15:37:20 -0700 |
| commit | b77abd2bfeb13ae046b1f8c6157bd5a497665657 (patch) | |
| tree | 970d0174341aaf01068fe8d5a7f0ae1df4801c90 /src | |
| parent | b4050ab75e896dd0df51624c956e0dd412dde2cc (diff) | |
| download | emacs-b77abd2bfeb13ae046b1f8c6157bd5a497665657.tar.gz emacs-b77abd2bfeb13ae046b1f8c6157bd5a497665657.zip | |
alloc.c: ckd_add, not by-hand checks
* src/alloc.c (lmalloc, lrealloc): Prefer ckd_add to
by-hand checks for integer addition overflow.
Diffstat (limited to 'src')
| -rw-r--r-- | src/alloc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/alloc.c b/src/alloc.c index 37069ee4c9e..52f8a65d59d 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -1404,8 +1404,8 @@ lmalloc (size_t size, bool clearit) | |||
| 1404 | if (laligned (p, size) && (MALLOC_0_IS_NONNULL || size || p)) | 1404 | if (laligned (p, size) && (MALLOC_0_IS_NONNULL || size || p)) |
| 1405 | return p; | 1405 | return p; |
| 1406 | free (p); | 1406 | free (p); |
| 1407 | size_t bigger = size + LISP_ALIGNMENT; | 1407 | size_t bigger; |
| 1408 | if (size < bigger) | 1408 | if (!ckd_add (&bigger, size, LISP_ALIGNMENT)) |
| 1409 | size = bigger; | 1409 | size = bigger; |
| 1410 | } | 1410 | } |
| 1411 | } | 1411 | } |
| @@ -1418,8 +1418,8 @@ lrealloc (void *p, size_t size) | |||
| 1418 | p = realloc (p, size); | 1418 | p = realloc (p, size); |
| 1419 | if (laligned (p, size) && (size || p)) | 1419 | if (laligned (p, size) && (size || p)) |
| 1420 | return p; | 1420 | return p; |
| 1421 | size_t bigger = size + LISP_ALIGNMENT; | 1421 | size_t bigger; |
| 1422 | if (size < bigger) | 1422 | if (!ckd_add (&bigger, size, LISP_ALIGNMENT)) |
| 1423 | size = bigger; | 1423 | size = bigger; |
| 1424 | } | 1424 | } |
| 1425 | } | 1425 | } |