From 39cc0bf2c8f0fe7eabb3ba797de8d9daac9346eb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 5 Oct 2015 18:01:56 +0100 Subject: [PATCH] New upstream version 1.3.12. - Drop patches which are now upstream. - Use OCaml macros to test if OCaml native compiler is available. - Use autoreconf --force option. --- ...ak-errno-from-_hivex_recode-function.patch | 33 ------------------- ...-Increase-HIVEX_MAX_SUBKEYS-to-25000.patch | 28 ---------------- 0001-lib-write-fix-memory-leak.patch | 33 ------------------- ...rease-HIVEX_MAX_VALUE_LEN-to-8000000.patch | 31 ----------------- hivex.spec | 31 ++++++++--------- sources | 2 +- 6 files changed, 15 insertions(+), 143 deletions(-) delete mode 100644 0001-lib-Don-t-leak-errno-from-_hivex_recode-function.patch delete mode 100644 0001-lib-Increase-HIVEX_MAX_SUBKEYS-to-25000.patch delete mode 100644 0001-lib-write-fix-memory-leak.patch delete mode 100644 0002-lib-Increase-HIVEX_MAX_VALUE_LEN-to-8000000.patch diff --git a/0001-lib-Don-t-leak-errno-from-_hivex_recode-function.patch b/0001-lib-Don-t-leak-errno-from-_hivex_recode-function.patch deleted file mode 100644 index 24ece49..0000000 --- a/0001-lib-Don-t-leak-errno-from-_hivex_recode-function.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 4b3c3cd2b3d8d34601979feeb1390fddd442ab04 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Thu, 20 Nov 2014 21:37:19 +0000 -Subject: [PATCH] lib: Don't leak errno from _hivex_recode function. - -If iconv returns E2BIG, that's an internal indication for us, and not -an error. Don't leak the errno up to the user, as happened here: - -https://www.redhat.com/archives/libguestfs/2014-November/msg00140.html - -Thanks Nicolas Ecarnot. ---- - lib/utf16.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/lib/utf16.c b/lib/utf16.c -index fe2c3bd..238f40a 100644 ---- a/lib/utf16.c -+++ b/lib/utf16.c -@@ -58,6 +58,10 @@ _hivex_recode (const char *input_encoding, const char *input, size_t input_len, - if (r == (size_t) -1) { - if (errno == E2BIG) { - int err = errno; -+ /* Reset errno here because we don't want to accidentally -+ * return E2BIG to a library caller. -+ */ -+ errno = 0; - size_t prev = outalloc; - /* Try again with a larger output buffer. */ - free (out); --- -2.1.0 - diff --git a/0001-lib-Increase-HIVEX_MAX_SUBKEYS-to-25000.patch b/0001-lib-Increase-HIVEX_MAX_SUBKEYS-to-25000.patch deleted file mode 100644 index f8d7fe7..0000000 --- a/0001-lib-Increase-HIVEX_MAX_SUBKEYS-to-25000.patch +++ /dev/null @@ -1,28 +0,0 @@ -From bec3f0bb632c4b84a1dfb73eb6333c2ba9834ffb Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Thu, 20 Nov 2014 20:47:50 +0000 -Subject: [PATCH] lib: Increase HIVEX_MAX_SUBKEYS to 25000. - -Thanks Nicolas Ecarnot who found a HKLM\SOFTWARE hive from a Windows -XP machine which had an nk containing 18254 subkeys ( > current limit -of 15000). ---- - lib/hivex-internal.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/hivex-internal.h b/lib/hivex-internal.h -index 1613013..1643469 100644 ---- a/lib/hivex-internal.h -+++ b/lib/hivex-internal.h -@@ -323,7 +323,7 @@ extern int _hivex_get_values (hive_h *h, hive_node_h node, hive_value_h **values - } while (0) - - /* These limits are in place to stop really stupid stuff and/or exploits. */ --#define HIVEX_MAX_SUBKEYS 15000 -+#define HIVEX_MAX_SUBKEYS 25000 - #define HIVEX_MAX_VALUES 10000 - #define HIVEX_MAX_VALUE_LEN 8000000 - #define HIVEX_MAX_ALLOCATION 1000000 --- -2.1.0 - diff --git a/0001-lib-write-fix-memory-leak.patch b/0001-lib-write-fix-memory-leak.patch deleted file mode 100644 index d5e9d80..0000000 --- a/0001-lib-write-fix-memory-leak.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 62b885e5b6239ac925554063dadeff8eeee7f2fc Mon Sep 17 00:00:00 2001 -From: Pino Toscano -Date: Tue, 11 Nov 2014 11:36:30 +0100 -Subject: [PATCH 1/2] lib: write: fix memory leak - -Free the "blocks" array got from _hivex_get_children. - -Thanks: Mahmoud Al-Qudsi ---- - lib/write.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/lib/write.c b/lib/write.c -index abd12c5..33b64e4 100644 ---- a/lib/write.c -+++ b/lib/write.c -@@ -902,10 +902,13 @@ hivex_node_delete_child (hive_h *h, hive_node_h node) - } - } - } -+ free (blocks); - SET_ERRNO (ENOTSUP, "could not find parent to child link"); - return -1; - - found:; -+ free (blocks); -+ - struct ntreg_nk_record *nk = - (struct ntreg_nk_record *) ((char *) h->addr + parent); - size_t nr_subkeys_in_nk = le32toh (nk->nr_subkeys); --- -2.1.0 - diff --git a/0002-lib-Increase-HIVEX_MAX_VALUE_LEN-to-8000000.patch b/0002-lib-Increase-HIVEX_MAX_VALUE_LEN-to-8000000.patch deleted file mode 100644 index a03ef95..0000000 --- a/0002-lib-Increase-HIVEX_MAX_VALUE_LEN-to-8000000.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 99b613b1c1d326702b2bb527f20d555d7c7e4ee7 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Fri, 14 Nov 2014 15:37:37 +0000 -Subject: [PATCH 2/2] lib: Increase HIVEX_MAX_VALUE_LEN to 8000000. - -I encountered a hive that contained a key of 3_886_561 bytes length in -a key called 'HKLM\SYSTEM\ControlSet001\services\mfeavfk' (apparently -belonging to "McAfee Anti-virus software"). - -The previous limit was set arbitrarily at 2_000_000 bytes. Increase -it to cope with this larger key. ---- - lib/hivex-internal.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/hivex-internal.h b/lib/hivex-internal.h -index e59084d..1613013 100644 ---- a/lib/hivex-internal.h -+++ b/lib/hivex-internal.h -@@ -325,7 +325,7 @@ extern int _hivex_get_values (hive_h *h, hive_node_h node, hive_value_h **values - /* These limits are in place to stop really stupid stuff and/or exploits. */ - #define HIVEX_MAX_SUBKEYS 15000 - #define HIVEX_MAX_VALUES 10000 --#define HIVEX_MAX_VALUE_LEN 2000000 -+#define HIVEX_MAX_VALUE_LEN 8000000 - #define HIVEX_MAX_ALLOCATION 1000000 - - #endif /* HIVEX_INTERNAL_H_ */ --- -2.1.0 - diff --git a/hivex.spec b/hivex.spec index 2500004..e627a26 100644 --- a/hivex.spec +++ b/hivex.spec @@ -1,13 +1,13 @@ -# conditionalize Ocaml support -%ifarch sparc64 s390 s390x -%bcond_with ocaml -%else +# Conditionalize Ocaml support. This looks ass-backwards, but it's not. +%ifarch %{ocaml_native_compiler} %bcond_without ocaml +%else +%bcond_with ocaml %endif Name: hivex -Version: 1.3.11 -Release: 13%{?dist} +Version: 1.3.12 +Release: 1%{?dist} Summary: Read and write Windows Registry binary hive files License: LGPLv2 @@ -19,12 +19,6 @@ Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz Patch0: %{name}-1.3.8-dirs.patch BuildRequires: autoconf, automake, libtool, gettext-devel -# Pull in some upstream fixes. -Patch1: 0001-lib-write-fix-memory-leak.patch -Patch2: 0002-lib-Increase-HIVEX_MAX_VALUE_LEN-to-8000000.patch -Patch3: 0001-lib-Increase-HIVEX_MAX_SUBKEYS-to-25000.patch -Patch4: 0001-lib-Don-t-leak-errno-from-_hivex_recode-function.patch - BuildRequires: perl # Provides %{_bindir}/pod2html BuildRequires: perl-Pod-Html @@ -176,11 +170,8 @@ ruby-%{name} contains Ruby bindings for %{name}. %setup -q %patch0 -p1 -b .dirs -autoreconf -i -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 +autoreconf -i --force + %build %configure @@ -287,6 +278,12 @@ rm $RPM_BUILD_ROOT%{python_sitearch}/libhivexmod.la %changelog +* Mon Oct 5 2015 Richard W.M. Jones - 1.3.12-1 +- New upstream version 1.3.12. +- Drop patches which are now upstream. +- Use OCaml macros to test if OCaml native compiler is available. +- Use autoreconf --force option. + * Thu Aug 27 2015 Petr Ĺ abata - 1.3.11-13 - Correcting the perl build time dependency list Switching to virtual perl()-style symbols diff --git a/sources b/sources index a6eee1d..bb99025 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -be99b2db9913eab10b9b39219cec55a9 hivex-1.3.11.tar.gz +710bfdeaf7b04e9b04269c25f654edad hivex-1.3.12.tar.gz