From 40b8dc410e12e6111b2897f385847a0f3ec720c7 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 29 Mar 2009 00:50:30 +0000 Subject: use bb_strtou() in umask/wait and check errno to see if there was a problem rather than using endp --- shell/hush.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'shell/hush.c') diff --git a/shell/hush.c b/shell/hush.c index 9f0e7f809..5203f2eef 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -4892,12 +4892,10 @@ static int builtin_umask(char **argv) { mode_t new_umask; const char *arg = argv[1]; - char *end; if (arg) { - new_umask = strtoul(arg, &end, 8); - if (*end != '\0' || end == arg) { + new_umask = bb_strtou(arg, NULL, 8); + if (errno) return EXIT_FAILURE; - } } else { new_umask = umask(0); printf("%.3o\n", (unsigned) new_umask); @@ -4924,9 +4922,8 @@ static int builtin_wait(char **argv) wait(&status); while (argv[1]) { - char *endp; - pid_t pid = bb_strtou(argv[1], &endp, 10); - if (*endp) { + pid_t pid = bb_strtou(argv[1], NULL, 10); + if (errno) { bb_perror_msg("wait %s", argv[1]); return EXIT_FAILURE; } else if (waitpid(pid, &status, 0) == pid) { -- cgit v1.2.3