[git commit] libbb: code shrink in last_char_is()

Denys Vlasenko vda.linux at googlemail.com
Tue Jun 30 06:33:02 UTC 2020


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

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/last_char_is.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/libbb/last_char_is.c b/libbb/last_char_is.c
index 66f2e3635..918526e6c 100644
--- a/libbb/last_char_is.c
+++ b/libbb/last_char_is.c
@@ -8,16 +8,17 @@
  */
 #include "libbb.h"
 
-/* Find out if the last character of a string matches the one given.
- * Don't underrun the buffer if the string length is 0.
- */
+/* 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 && *s) {
-		size_t sz = strlen(s) - 1;
-		s += sz;
-		if ( (unsigned char)*s == c)
-			return (char*)s;
+	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;
 }


More information about the busybox-cvs mailing list