summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHilko Bengen <bengen@hilluzination.de>2011-04-28 00:20:08 +0200
committerRichard W.M. Jones <rjones@redhat.com>2011-04-28 09:38:04 +0100
commitd0e382c601cbba8bba6df4258f91c3414ee82766 (patch)
treeb4ac15d257177803076c00901516531e3c559794
parentd5ed3c8f348e4ce6bc944ae6312bf9d8bfe852d4 (diff)
downloadhivex-d0e382c601cbba8bba6df4258f91c3414ee82766.tar.gz
hivex-d0e382c601cbba8bba6df4258f91c3414ee82766.tar.xz
hivex-d0e382c601cbba8bba6df4258f91c3414ee82766.zip
hivex/python fix for i386 integer size issue
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
-rwxr-xr-xgenerator/generator.ml2
1 files changed, 1 insertions, 1 deletions
diff --git a/generator/generator.ml b/generator/generator.ml
index 7e706d1..9722312 100755
--- a/generator/generator.ml
+++ b/generator/generator.ml
@@ -2875,7 +2875,7 @@ put_val_type (char *val, size_t len, hive_type t)
pr "O"
| ANode n
| AValue n ->
- pr "L"
+ pr "l"
| AString n ->
pr "s"
| AStringNullable n ->