[git commit] libbb: shrink last_char_is(), no longer allow NULL string argument
Denys Vlasenko
vda.linux at googlemail.com
Sun Jul 19 18:49:22 UTC 2020
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 at 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;
}
More information about the busybox-cvs
mailing list