[git commit] libbb/procps.c: make fast_strtoul_10() stop on '\n' too

Denys Vlasenko vda.linux at googlemail.com
Tue Feb 28 10:16:21 UTC 2012


commit: http://git.busybox.net/busybox/commit/?id=62c006d508552a6ac547b807eb9ad0a32a76e1c9
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

This time for real :)

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/procps.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/libbb/procps.c b/libbb/procps.c
index c06ff1d..40587db 100644
--- a/libbb/procps.c
+++ b/libbb/procps.c
@@ -127,11 +127,11 @@ static unsigned long fast_strtoul_16(char **endptr)
 	char *str = *endptr;
 	unsigned long n = 0;
 
-	/* need to stop on both ' ' and '\n' */
+	/* Need to stop on both ' ' and '\n' */
 	while ((c = *str++) > ' ') {
 		c = ((c|0x20) - '0');
 		if (c > 9)
-			// c = c + '0' - 'a' + 10:
+			/* c = c + '0' - 'a' + 10: */
 			c = c - ('a' - '0' - 10);
 		n = n*16 + c;
 	}
@@ -144,11 +144,12 @@ static unsigned long fast_strtoul_16(char **endptr)
 /* We cut a lot of corners here for speed */
 static unsigned long fast_strtoul_10(char **endptr)
 {
-	char c;
+	unsigned char c;
 	char *str = *endptr;
 	unsigned long n = *str - '0';
 
-	while ((c = *++str) != ' ')
+	/* Need to stop on both ' ' and '\n' */
+	while ((c = *++str) > ' ')
 		n = n*10 + (c - '0');
 
 	*endptr = str + 1; /* We skip trailing space! */


More information about the busybox-cvs mailing list