| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
The description of what it returns is already produced by the
generator.
This fixes commit e85b1eaa268caea316f6aa8e02738b3d94297250.
|
|
|
|
|
|
|
|
|
|
| |
This patch adds hivex_node_struct_length and hivex_value_struct_length
to the hivex ABI, to report the amount of hive space used for each
stored structure.
Signed-off-by: Alex Nelson <ajnelson@cs.ucsc.edu>
A fix added by RWMJ.
|
|
|
|
|
|
|
|
|
|
| |
This function breaks the value name calculation out so the name does
not need to be fetched and immediately thrown away when one only needs
the name.
Signed-off-by: Alex Nelson <ajnelson@cs.ucsc.edu>
RWMJ fixed hivex_value_key handling of errno.
|
|
|
|
|
|
|
|
| |
This patch adds RSize, similar to RNode and RValue.
Signed-off-by: Alex Nelson <ajnelson@cs.ucsc.edu>
OCaml bindings fixed by RWMJ.
|
| |
|
| |
|
|
|
|
| |
Also this adds a regression test so we don't break it in future.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The infrastructure for modified-time reporting has been essentially
unused. These changes report the registry time by treating the
time fields as Windows filetime fields stored in little-Endian
(which means they can be treated as a single 64-bit little-Endian
integer).
This patch adds to the hivex ABI:
* int64_t hivex_last_modified (hive_h *)
* int64_t hivex_node_timestamp (hive_h *, hive_node_h)
These two functions return the hive's last-modified time and
a particular node's last-modified time, respectively. Credit
to Richard Jones for the ABI suggestion, and for the tip on
Microsoft's filetime time span.
hivexml employs these two functions to produce mtime elements
for a hive and all of its nodes, producing ISO-8601 formatted
time.
Signed-off-by: Alex Nelson <ajnelson@cs.ucsc.edu>
A lot of code cleanup by RWMJ.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
now that we're using gnulib's inttypes module, which ensures
that we use a conforming <inttypes.h>.
* bootstrap (modules): Add inttypes.
* generator/generator.ml (generate_perl_xs) [PRId64, PRIu64]:
Don't define these symbols. Instead, ...
Include <inttypes.h>.
|
|
|
|
|
|
|
|
|
|
| |
Previously we returned errno == ENOKEY. However this was an
unfortunate choice of error code since it is not defined in POSIX. As
a result it is missing on several platforms.
HIVEX_NO_KEY is defined as ENOKEY on platforms where this symbol
exists (thus maintaining backwards ABI compatibility), and defined as
another POSIX error code otherwise.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hi,
While working on Debian packages of hivex 1.2.5, I came across a test
failure for the Python bindings with Python 2.7 on the i386
architecture. (The tests ran fine on amd64.)
,----
| $ make -C python check
| make[1]: Entering directory `/home/bengen/src/deb/hivex/hivex.git/python'
| 010-import.py
| 020-open.py
| 021-close.py
| 200-write.py
| python: hivex-py.c:52: get_handle: Assertion `obj' failed.
`----
I narrowed this down to hivex-py.c:py_hivex_node_add_child():
The call
,----
| PyArg_ParseTuple (args, (char *) "OLs:hivex_node_add_child",
| &py_h, &parent, &name)
`----
results in `py_h' set to NULL, though Python's documentation claims that
this cannot happen. I think this happens because `parent' is declared a
`long int', but "L" in the format string corresponds to a `long long'.
On amd64, they have the same size, but on i386 they don't, so the
PyObject pointer is written to the wrong address.
Please consider applying the patch below which just changes the format
string. After regenerating hivex-py.c, I have successfully tested the
1.2.5 code base on both architectures.
Cheers,
-Hilko
|
| |
|
| |
|
| |
|
|
|
|
| |
Thanks to Hilko Bengen for spotting the problem.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Previously this didn't correctly return an empty registry
value. In this case the length argument to newSVpv would
be 0 which tells Perl to try to calculate the length (we
want newSVpvn instead).
|
|
|
|
|
|
| |
These were passing the type & len arguments the wrong way round
to the C function, resulting in data corruption in the returned
values.
|
| |
|
| |
|
|
|
|
|
|
| |
This commit disables parts of the build related to Python
and notes in the README that we didn't have time to finish
Python bindings.
|
|
|
|
| |
This also adds a small test suite for the Perl bindings.
|
| |
|
|
|
|
|
|
|
| |
Also we tighten up the definition of hivex_close (it disposes of handles)
and hivex_node_get_child (unusual "not found" non-error condition).
This also adds tests of the OCaml bindings.
|
|
|
|
|
| |
(No bindings are actually built, this just adds the build, test
and generator framework for them).
|
| |
|
| |
|
| |
|
|
At the moment the generator just generates the C header file
and C POD documentation. This just so we can compare the existing
hand-written code with the generated code to make sure that our
description of the API within the generator is correct.
|