[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox-cvs
Subject:    [git commit] libbb/u_signal_names.c: don't check errno after bb_strtou
From:       Denys Vlasenko <vda.linux () googlemail ! com>
Date:       2018-10-31 10:28:37
Message-ID: 20181031102811.9202E83856 () busybox ! osuosl ! org
[Download RAW message or body]

commit: https://git.busybox.net/busybox/commit/?id=656ca7bdd992f6aabbdd5cadbac5241f6e1971a1
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Since we're comparing the return value to a smallish integer anyway, we
might as well use that bb_strtou() returns UINT_MAX for malformed
input. Referencing errno is kinda bloaty on glibc.

While NSIG is not in POSIX, we do already rely on it being defined,
compile-time const and smallish, since arrays in struct globals_misc are
defined in terms of it.

function                                             old     new   delta
get_signum                                           312     286     -26

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 libbb/u_signal_names.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/libbb/u_signal_names.c b/libbb/u_signal_names.c
index 866ca85fd..f7d598c7a 100644
--- a/libbb/u_signal_names.c
+++ b/libbb/u_signal_names.c
@@ -153,8 +153,12 @@ int FAST_FUNC get_signum(const char *name)
 {
 	unsigned i;
 
+	/* bb_strtou returns UINT_MAX on error. NSIG is smaller
+	 * than UINT_MAX on any sane Unix. Hence no need
+	 * to check errno after bb_strtou().
+	 */
 	i = bb_strtou(name, NULL, 10);
-	if (!errno && i < NSIG) /* for shells, we allow 0 too */
+	if (i < NSIG) /* for shells, we allow 0 too */
 		return i;
 	if (strncasecmp(name, "SIG", 3) == 0)
 		name += 3;
@@ -204,7 +208,7 @@ int FAST_FUNC get_signum(const char *name)
 				return sigrtmin;
 			if (name[5] == '+') {
 				i = bb_strtou(name + 6, NULL, 10);
-				if (!errno && i <= sigrtmax - sigrtmin)
+				if (i <= sigrtmax - sigrtmin)
 					return sigrtmin + i;
 			}
 		}
@@ -213,7 +217,7 @@ int FAST_FUNC get_signum(const char *name)
 				return sigrtmax;
 			if (name[5] == '-') {
 				i = bb_strtou(name + 6, NULL, 10);
-				if (!errno && i <= sigrtmax - sigrtmin)
+				if (i <= sigrtmax - sigrtmin)
 					return sigrtmax - i;
 			}
 		}
_______________________________________________
busybox-cvs mailing list
busybox-cvs@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic