]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lib/strutils: make left and right trims more robust
authorSami Kerola <kerolasa@iki.fi>
Sun, 4 Sep 2016 10:15:34 +0000 (11:15 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 29 Sep 2016 09:49:08 +0000 (11:49 +0200)
Do not follow null pointer, and stop going any further when
ltrim_whitespace() is at the end of a string.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
include/strutils.h

index 52c28b77bf917d54648431e9107c727a4627bf29..51d9c9ff3553d4bf407fe5ac9862d72e5fb76789 100644 (file)
@@ -178,8 +178,11 @@ static inline const char *skip_blank(const char *p)
  */
 static inline size_t rtrim_whitespace(unsigned char *str)
 {
-       size_t i = strlen((char *) str);
+       size_t i;
 
+       if (!str)
+               return 0;
+       i = strlen((char *) str);
        while (i) {
                i--;
                if (!isspace(str[i])) {
@@ -200,7 +203,9 @@ static inline size_t ltrim_whitespace(unsigned char *str)
        size_t len;
        unsigned char *p;
 
-       for (p = str; p && isspace(*p); p++);
+       if (!str)
+               return 0;
+       for (p = str; *p && isspace(*p); p++);
 
        len = strlen((char *) p);