summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/strtoull.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/stdlib/strtoull.c')
-rw-r--r--src/lib/libc/stdlib/strtoull.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/lib/libc/stdlib/strtoull.c b/src/lib/libc/stdlib/strtoull.c
index 28f613a087..846417630f 100644
--- a/src/lib/libc/stdlib/strtoull.c
+++ b/src/lib/libc/stdlib/strtoull.c
@@ -1,5 +1,5 @@
1/* $OpenBSD: strtoull.c,v 1.6 2013/03/28 18:09:38 martynas Exp $ */ 1/* $OpenBSD: strtoull.c,v 1.7 2014/09/13 20:10:12 schwarze Exp $ */
2/*- 2/*
3 * Copyright (c) 1992 The Regents of the University of California. 3 * Copyright (c) 1992 The Regents of the University of California.
4 * All rights reserved. 4 * All rights reserved.
5 * 5 *
@@ -50,8 +50,15 @@ strtoull(const char *nptr, char **endptr, int base)
50 int neg, any, cutlim; 50 int neg, any, cutlim;
51 51
52 /* 52 /*
53 * See strtoq for comments as to the logic used. 53 * See strtoll for comments as to the logic used.
54 */ 54 */
55 if (base < 0 || base == 1 || base > 36) {
56 if (endptr != 0)
57 *endptr = (char *)nptr;
58 errno = EINVAL;
59 return 0;
60 }
61
55 s = nptr; 62 s = nptr;
56 do { 63 do {
57 c = (unsigned char) *s++; 64 c = (unsigned char) *s++;
@@ -59,7 +66,7 @@ strtoull(const char *nptr, char **endptr, int base)
59 if (c == '-') { 66 if (c == '-') {
60 neg = 1; 67 neg = 1;
61 c = *s++; 68 c = *s++;
62 } else { 69 } else {
63 neg = 0; 70 neg = 0;
64 if (c == '+') 71 if (c == '+')
65 c = *s++; 72 c = *s++;