[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Libguestfs] [PATCH 1/7] hivex: Store filename in hive handle.



-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://et.redhat.com/~rjones/libguestfs/
See what it can do: http://et.redhat.com/~rjones/libguestfs/recipes.html
>From 8195635932637f863beb6cb8af6c2cf0860ea9d5 Mon Sep 17 00:00:00 2001
From: Richard Jones <rjones redhat com>
Date: Mon, 18 Jan 2010 10:58:06 +0000
Subject: [PATCH 1/7] hivex: Store filename in hive handle.

---
 hivex/hivex.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/hivex/hivex.c b/hivex/hivex.c
index 6129017..a760300 100644
--- a/hivex/hivex.c
+++ b/hivex/hivex.c
@@ -89,6 +89,7 @@
 static char *windows_utf16_to_utf8 (/* const */ char *input, size_t len);
 
 struct hive_h {
+  char *filename;
   int fd;
   size_t size;
   int msglvl;
@@ -281,6 +282,10 @@ hivex_open (const char *filename, int flags)
   if (h->msglvl >= 2)
     fprintf (stderr, "hivex_open: created handle %p\n", h);
 
+  h->filename = strdup (filename);
+  if (h->filename == NULL)
+    goto error;
+
   h->fd = open (filename, O_RDONLY);
   if (h->fd == -1)
     goto error;
@@ -482,6 +487,7 @@ hivex_open (const char *filename, int flags)
       munmap (h->addr, h->size);
     if (h->fd >= 0)
       close (h->fd);
+    free (h->filename);
     free (h);
   }
   errno = err;
@@ -496,6 +502,7 @@ hivex_close (hive_h *h)
   free (h->bitmap);
   munmap (h->addr, h->size);
   r = close (h->fd);
+  free (h->filename);
   free (h);
 
   return r;
-- 
1.6.5.2


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]