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

List:       busybox-cvs
Subject:    [git commit] libbb: shrink last_char_is(), no longer allow NULL string argument
From:       Denys Vlasenko <vda.linux () googlemail ! com>
Date:       2020-07-19 18:49:22
Message-ID: 20200719184546.A4FDB87B2E () busybox ! osuosl ! org
[Download RAW message or body]

commit: https://git.busybox.net/busybox/commit/?id=79a4032eefe405a1e7d4a644614fcc4a07b98d88
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
last_char_is                                          40      28     -12

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 libbb/last_char_is.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/libbb/last_char_is.c b/libbb/last_char_is.c
index 918526e6c..fba05f974 100644
--- a/libbb/last_char_is.c
+++ b/libbb/last_char_is.c
@@ -11,14 +11,9 @@
 /* Find out if the last character of a string matches the one given */
 char* FAST_FUNC last_char_is(const char *s, int c)
 {
-	if (s) {
-		size_t sz = strlen(s);
-		/* Don't underrun the buffer if the string length is 0 */
-		if (sz != 0) {
-			s += sz - 1;
-			if ((unsigned char)*s == c)
-				return (char*)s;
-		}
-	}
-	return NULL;
+	if (!s[0])
+		return NULL;
+	while (s[1])
+		s++;
+	return (*s == (char)c) ? (char *) s : NULL;
 }
_______________________________________________
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