diff options
author | Sami Kerola | 2016-09-04 12:15:34 +0200 |
---|---|---|
committer | Karel Zak | 2016-09-29 11:49:08 +0200 |
commit | 0b404f0845fe97f84e45f9b7b23e9e1814d3ef4e (patch) | |
tree | 7ccc0020ba42be41aab6663aa1487f5af972772f /include | |
parent | libsmartcols: custom wrap fixes (diff) | |
download | kernel-qcow2-util-linux-0b404f0845fe97f84e45f9b7b23e9e1814d3ef4e.tar.gz kernel-qcow2-util-linux-0b404f0845fe97f84e45f9b7b23e9e1814d3ef4e.tar.xz kernel-qcow2-util-linux-0b404f0845fe97f84e45f9b7b23e9e1814d3ef4e.zip |
lib/strutils: make left and right trims more robust
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>
Diffstat (limited to 'include')
-rw-r--r-- | include/strutils.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/strutils.h b/include/strutils.h index 52c28b77b..51d9c9ff3 100644 --- a/include/strutils.h +++ b/include/strutils.h @@ -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); |