aboutsummaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
author卜部昌平 <shyouhei@ruby-lang.org>2021-01-08 15:55:05 +0900
committer卜部昌平 <shyouhei@ruby-lang.org>2021-09-10 20:00:06 +0900
commit538a3919d993a253e0aef14ca2fab8f65aa87634 (patch)
tree8edb5a4aa1a260d1757382e1666213fe7475a051 /util.c
parent9febab7afcff3a2b7d6a90f022ad19377f62733d (diff)
downloadruby-538a3919d993a253e0aef14ca2fab8f65aa87634.tar.gz
include/ruby/internal/ctype.h: add doxygen
Must not be a bad idea to improve documents.
Diffstat (limited to 'util.c')
-rw-r--r--util.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/util.c b/util.c
index 0c8de209cb..1b11ecb3f5 100644
--- a/util.c
+++ b/util.c
@@ -97,6 +97,8 @@ NO_SANITIZE("unsigned-integer-overflow", extern unsigned long ruby_scan_digits(c
unsigned long
ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
{
+ RBIMPL_ASSERT_OR_ASSUME(base >= 2);
+ RBIMPL_ASSERT_OR_ASSUME(base <= 36);
const char *start = str;
unsigned long ret = 0, x;
@@ -136,6 +138,11 @@ ruby_strtoul(const char *str, char **endptr, int base)
unsigned long ret;
const char *subject_found = str;
+ if (base < 0) {
+ errno = EINVAL;
+ return 0;
+ }
+
if (base == 1 || 36 < base) {
errno = EINVAL;
return 0;