hivexml: Do not print null input times
authorAlex Nelson <ajnelson@cs.ucsc.edu>
Sat, 17 Sep 2011 23:14:31 +0000 (16:14 -0700)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 22 Sep 2011 13:17:09 +0000 (14:17 +0100)
Dealing with "1601-01-01T00:00:00Z" is unnecessarily awkward, especially
since the value only represents a 0 found in the data.

Signed-off-by: Alex Nelson <ajnelson@cs.ucsc.edu>
xml/hivexml.c

index cf11676..5030c24 100644 (file)
@@ -169,6 +169,10 @@ main (int argc, char *argv[])
  * fiwalk.cpp.
  *
  * The caller should free the returned buffer.
+ *
+ * This function returns NULL on a 0 input.  In the context of
+ * hives, which only have mtimes, 0 will always be a complete
+ * absence of data.
  */
 
 #define WINDOWS_TICK 10000000LL
@@ -182,6 +186,9 @@ filetime_to_8601 (int64_t windows_ticks)
   time_t t;
   struct tm *tm;
 
+  if (windows_ticks == 0LL)
+    return NULL;
+
   t = windows_ticks / WINDOWS_TICK - SEC_TO_UNIX_EPOCH;
   tm = gmtime (&t);
   if (tm == NULL)