summaryrefslogtreecommitdiffstats
path: root/include/strutils.h
diff options
context:
space:
mode:
authorSami Kerola2014-11-22 09:18:17 +0100
committerSami Kerola2014-12-19 10:10:48 +0100
commit2f8610ee95ebde1e436a7ce38e34a8e8e76cc6df (patch)
treeb2bcc9ad3f2ebf954ad2789a363f88becbd988f6 /include/strutils.h
parentfdisk: (sgi) fix unsigned integer overflow [AddressSanitizer] (diff)
downloadkernel-qcow2-util-linux-2f8610ee95ebde1e436a7ce38e34a8e8e76cc6df.tar.gz
kernel-qcow2-util-linux-2f8610ee95ebde1e436a7ce38e34a8e8e76cc6df.tar.xz
kernel-qcow2-util-linux-2f8610ee95ebde1e436a7ce38e34a8e8e76cc6df.zip
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>
Diffstat (limited to 'include/strutils.h')
-rw-r--r--include/strutils.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/strutils.h b/include/strutils.h
index cfe8a9560..4d8463a6d 100644
--- a/include/strutils.h
+++ b/include/strutils.h
@@ -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;
}