From: "Mike Gilbert" <floppym@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/sandbox:master commit in: libsandbox/
Date: Sat, 22 Feb 2025 19:49:07 +0000 (UTC) [thread overview]
Message-ID: <1739583761.811054d8bb60728bb485c007f7961856c9666407.floppym@gentoo> (raw)
commit: 811054d8bb60728bb485c007f7961856c9666407
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 6 16:33:49 2025 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Feb 15 01:42:41 2025 +0000
URL: https://gitweb.gentoo.org/proj/sandbox.git/commit/?id=811054d8
Add overflow checking in malloc, cmalloc
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
libsandbox/memory.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/libsandbox/memory.c b/libsandbox/memory.c
index 69aa972..a23e87a 100644
--- a/libsandbox/memory.c
+++ b/libsandbox/memory.c
@@ -49,9 +49,11 @@ static int sb_munmap(void *addr, size_t length)
void *malloc(size_t size)
{
- size_t *ret;
- size += MIN_ALIGN;
- ret = mmap(0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ if (__builtin_add_overflow(size, MIN_ALIGN, &size)) {
+ errno = ENOMEM;
+ return NULL;
+ }
+ size_t *ret = mmap(0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
if (ret == MAP_FAILED)
return NULL;
*ret = size;
@@ -70,9 +72,13 @@ void free(void *ptr)
/* Hrm, implement a zalloc() ? */
void *calloc(size_t nmemb, size_t size)
{
- void *ret = malloc(nmemb * size); /* dont care about overflow */
+ if (__builtin_mul_overflow(nmemb, size, &size)) {
+ errno = ENOMEM;
+ return NULL;
+ }
+ void *ret = malloc(size);
if (ret)
- memset(ret, 0, nmemb * size);
+ memset(ret, 0, size);
return ret;
}
next reply other threads:[~2025-02-22 19:49 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-22 19:49 Mike Gilbert [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-03-11 0:57 [gentoo-commits] proj/sandbox:master commit in: libsandbox/ Mike Gilbert
2025-03-10 1:17 Mike Gilbert
2025-03-09 18:09 Mike Gilbert
2025-03-09 18:09 Mike Gilbert
2025-03-09 18:09 Mike Gilbert
2025-02-23 20:07 Mike Gilbert
2025-02-22 19:49 Mike Gilbert
2025-02-22 19:49 Mike Gilbert
2025-02-22 19:49 Mike Gilbert
2025-02-22 19:49 Mike Gilbert
2025-02-22 19:49 Mike Gilbert
2025-02-22 19:49 Mike Gilbert
2025-02-22 19:49 Mike Gilbert
2025-01-08 2:12 [gentoo-commits] proj/sandbox:stable-2.x " Mike Gilbert
2025-01-14 4:38 ` [gentoo-commits] proj/sandbox:master " Mike Gilbert
2024-12-22 19:19 [gentoo-commits] proj/sandbox:stable-2.x " Mike Gilbert
2025-01-14 4:38 ` [gentoo-commits] proj/sandbox:master " Mike Gilbert
2024-12-22 19:19 [gentoo-commits] proj/sandbox:stable-2.x " Mike Gilbert
2025-01-14 4:38 ` [gentoo-commits] proj/sandbox:master " Mike Gilbert
2024-12-22 19:02 Mike Gilbert
2024-12-22 19:02 Mike Gilbert
2024-12-22 3:49 [gentoo-commits] proj/sandbox:stable-2.x " Mike Gilbert
2025-01-14 4:38 ` [gentoo-commits] proj/sandbox:master " Mike Gilbert
2024-12-22 3:41 Mike Gilbert
2024-11-04 19:15 Mike Gilbert
2024-01-27 18:05 Mike Gilbert
2024-01-22 21:41 Mike Gilbert
2023-08-08 15:27 Mike Gilbert
2023-08-05 23:38 Mike Gilbert
2023-08-05 23:38 Mike Gilbert
2023-08-05 23:38 Mike Gilbert
2023-08-05 23:38 Mike Gilbert
2023-08-04 0:26 Mike Gilbert
2023-08-01 14:14 Mike Gilbert
2021-11-03 16:40 Mike Frysinger
2021-11-03 16:40 Mike Frysinger
2021-11-03 6:59 Mike Frysinger
2021-10-31 23:54 Mike Frysinger
2021-10-28 9:56 Mike Frysinger
2021-10-28 7:14 Mike Frysinger
2021-10-28 3:41 Mike Frysinger
2021-10-23 22:19 Mike Frysinger
2021-10-23 6:10 Mike Frysinger
2021-10-23 6:10 Mike Frysinger
2021-10-22 4:20 Mike Frysinger
2021-10-22 4:15 Mike Frysinger
2021-10-21 20:37 Mike Frysinger
2021-10-21 20:37 Mike Frysinger
2021-10-21 1:51 Mike Frysinger
2021-10-18 22:04 Mike Frysinger
2021-09-07 15:35 Michał Górny
2021-04-02 11:22 Sergei Trofimovich
2021-03-15 18:08 Sergei Trofimovich
2019-06-25 6:42 Sergei Trofimovich
2018-12-02 15:22 Michał Górny
2018-07-19 11:50 Michał Górny
2018-02-18 21:32 Michał Górny
2017-10-03 16:42 Ian Stakenvicius
2017-10-03 16:39 Michał Górny
2016-03-30 5:22 Mike Frysinger
2016-03-29 12:24 Mike Frysinger
2015-12-19 18:10 Mike Frysinger
2015-12-19 18:10 Mike Frysinger
2015-12-19 7:29 Mike Frysinger
2015-09-27 6:13 Mike Frysinger
2015-09-27 6:13 Mike Frysinger
2015-09-20 8:15 Mike Frysinger
2015-09-20 8:15 Mike Frysinger
2015-09-20 8:15 Mike Frysinger
2015-09-20 8:15 Mike Frysinger
2015-09-11 7:53 Mike Frysinger
2013-02-25 4:12 Mike Frysinger
2013-02-25 4:08 Mike Frysinger
2012-06-23 23:12 Mike Frysinger
2012-06-23 22:40 Mike Frysinger
2012-06-23 21:21 Mike Frysinger
2012-03-07 5:28 Mike Frysinger
2011-07-08 19:53 Mike Frysinger
2011-07-08 19:53 Mike Frysinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1739583761.811054d8bb60728bb485c007f7961856c9666407.floppym@gentoo \
--to=floppym@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox