git.annexia.org
/
libguestfs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5eb3856
)
hivex: Store filename in hive handle.
author
Richard Jones
<rjones@redhat.com>
Mon, 18 Jan 2010 10:58:06 +0000
(10:58 +0000)
committer
Richard Jones
<rjones@redhat.com>
Thu, 28 Jan 2010 11:25:30 +0000
(11:25 +0000)
hivex/hivex.c
patch
|
blob
|
history
diff --git
a/hivex/hivex.c
b/hivex/hivex.c
index
6129017
..
a760300
100644
(file)
--- 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 {
static char *windows_utf16_to_utf8 (/* const */ char *input, size_t len);
struct hive_h {
+ char *filename;
int fd;
size_t size;
int msglvl;
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);
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;
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);
munmap (h->addr, h->size);
if (h->fd >= 0)
close (h->fd);
+ free (h->filename);
free (h);
}
errno = err;
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->bitmap);
munmap (h->addr, h->size);
r = close (h->fd);
+ free (h->filename);
free (h);
return r;
free (h);
return r;