From 75ea457771cec140fa3376bcc299948096c07acd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 13 Apr 2011 14:03:21 +0100 Subject: [PATCH] Handle odd-length "UTF16" strings. If the length of the buffer is not even, then this would read a byte of uninitialized data. Fix the length check to avoid this. --- lib/hivex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/hivex.c b/lib/hivex.c index b1f6ea6..71ea5c3 100644 --- a/lib/hivex.c +++ b/lib/hivex.c @@ -1384,7 +1384,7 @@ utf16_string_len_in_bytes_max (const char *str, size_t len) { size_t ret = 0; - while (len > 0 && (str[0] || str[1])) { + while (len >= 2 && (str[0] || str[1])) { str += 2; ret += 2; len -= 2; -- 1.8.3.1