strutils: fix unsigned integer overflows [AddressSanitizer]

include/strutils.h:174:10: runtime error: unsigned integer overflow: 0 -
1 cannot be represented in type 'size_t' (aka 'unsigned long')

include/strutils.h:178:6: runtime error: unsigned integer overflow:
18446744073709551615 + 1 cannot be represented in type 'size_t' (aka
'unsigned long')

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2014-11-22 08:18:17 +00:00
parent 737532efe5
commit 2f8610ee95
1 changed files with 6 additions and 3 deletions

View File

@ -171,11 +171,14 @@ static inline size_t rtrim_whitespace(unsigned char *str)
{
size_t i = strlen((char *) str);
while (i--) {
if (!isspace(str[i]))
while (i) {
i--;
if (!isspace(str[i])) {
i++;
break;
}
}
str[++i] = '\0';
str[i] = '\0';
return i;
}