diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2026-03-29 22:45:13 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2026-03-30 16:56:52 +0000 |
| commit | 7cfffe25da3fbc2db4bcf073ff2d240f84233973 (patch) | |
| tree | 6b6dd285b17bb2540e9d609dd40b441123880a47 | |
| parent | a1c042a9641c9df08010e87d0928703849ff9853 (diff) | |
rtld: check for overflow in parse_integer()
Reviewed by: dim, emaste, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D56151
| -rw-r--r-- | libexec/rtld-elf/rtld.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index e0de6d2e2214..1cf0d3e9ba28 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -6492,7 +6492,11 @@ parse_integer(const char *str) if (c < '0' || c > '9') return (-1); + if (n > INT_MAX / RADIX) + return (-1); n *= RADIX; + if (n > INT_MAX - (c - '0')) + return (-1); n += c - '0'; } |
