Really fix the case where a UTF-16 string contains junk after the string.
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 13 Apr 2011 12:54:05 +0000 (13:54 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 13 Apr 2011 12:54:05 +0000 (13:54 +0100)
The previous commit b71b88f588f8660935a7d462e97b84aa2d669249 attempted
to fix this, but got the test the wrong way round so the length would
never be shorter.

lib/hivex.c

index 860c85c..3f4c629 100644 (file)
@@ -1335,7 +1335,7 @@ hivex_value_string (hive_h *h, hive_value_h value)
    * (Found by Hilko Bengen in a fresh Windows XP SOFTWARE hive).
    */
   size_t slen = utf16_string_len_in_bytes_max (data, len);
-  if (slen > len)
+  if (slen < len)
     len = slen;
 
   char *ret = windows_utf16_to_utf8 (data, len);