Compare commits

..

No commits in common. 'c9' and 'i10cs' have entirely different histories.
c9 ... i10cs

2
.gitignore vendored

@ -1,2 +1,2 @@
SOURCES/hivex-1.3.21.tar.gz
SOURCES/hivex-1.3.24.tar.gz
SOURCES/libguestfs.keyring

@ -1,2 +1,2 @@
3d39d9210e92d809fc3d1e692ff27ee7e9fb0b4c SOURCES/hivex-1.3.21.tar.gz
76cb2b15d83ef90c77ef1a5acd9b772fbe7ae759 SOURCES/hivex-1.3.24.tar.gz
1bbc40f501a7fef9eef2a39b701a71aee2fea7c4 SOURCES/libguestfs.keyring

@ -1,80 +0,0 @@
From d5a522c0bb738efdd7cc1e762840b579fc9ea3de Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Fri, 10 Sep 2021 01:06:17 +0200
Subject: [PATCH] lib: write: improve key collation compatibility with Windows
There are multiple problems with using strcasecmp() for ordering registry
keys:
(1) strcasecmp() is influenced by LC_CTYPE.
(2) strcasecmp() cannot implement case conversion for multibyte UTF-8
sequences.
(3) Even with LC_CTYPE=POSIX and key names consisting solely of ASCII
characters, strcasecmp() converts characters to lowercase, for
comparison. But on Windows, the CompareStringOrdinal() function
converts characters to uppercase. This makes a difference when
comparing a letter to one of the characters that fall between 'Z'
(0x5A) and 'a' (0x61), namely {'[', '\\', ']', '^', '_', '`'}. For
example,
'c' (0x63) > '_' (0x5F)
'C' (0x43) < '_' (0x5F)
Compare key names byte for byte, eliminating problems (1) and (3).
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1648520
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20210909230617.31256-1-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
lib/write.c | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/lib/write.c b/lib/write.c
index 70105c9d9907..d9a13a3c18b6 100644
--- a/lib/write.c
+++ b/lib/write.c
@@ -462,7 +462,37 @@ compare_name_with_nk_name (hive_h *h, const char *name, hive_node_h nk_offs)
return 0;
}
- int r = strcasecmp (name, nname);
+ /* Perform a limited case-insensitive comparison. ASCII letters will be
+ * *upper-cased*. Multibyte sequences will produce nonsensical orderings.
+ */
+ int r = 0;
+ const char *s1 = name;
+ const char *s2 = nname;
+
+ for (;;) {
+ unsigned char c1 = *(s1++);
+ unsigned char c2 = *(s2++);
+
+ if (c1 >= 'a' && c1 <= 'z')
+ c1 = 'A' + (c1 - 'a');
+ if (c2 >= 'a' && c2 <= 'z')
+ c2 = 'A' + (c2 - 'a');
+ if (c1 < c2) {
+ /* Also covers the case when "name" is a prefix of "nname". */
+ r = -1;
+ break;
+ }
+ if (c1 > c2) {
+ /* Also covers the case when "nname" is a prefix of "name". */
+ r = 1;
+ break;
+ }
+ if (c1 == '\0') {
+ /* Both strings end. */
+ break;
+ }
+ }
+
free (nname);
return r;
--
2.19.1.3.g30247aa5d201

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmEHr1sRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKAdQRAAnKp8vh3Mn73YpNBzA4PgQm/wkhwU0vlG
WEpcbz5sJnxd51XsLfPbHLC99CN3A47WBbwvUVlbY6QIzEgonKJvsWYPnRi9DURG
9rrHGPNixitS+eZCwyhhqjDXzujQOC7h0YBRxOHp2HTE2uQ+l15o6H0i6sr2vNkG
QwiUI50YVhtaAi3DVaXpPbb2vlA+3K6ImeLPQrSB+em1+n0g40Wze6B2tHN5wtxB
XMRN8Hlw+Emc3Fe0Bx/4apg6YRqnXXCGyTyx25zHgtnf8cocOvjamt/cqsN3IspP
pOi9aD4+LmPuToLzTfReLwmacch3p+QA4ZjSfcqmSXOpdl6ZtIBGHg3587Zv3j5+
1WvpVVTeRsV8neRg9H+bnLFhjvCjbU+pPylmW+HdWargqFrzlhFrLAvGTzKhxWNy
r3Xmbe/XnHHTWYeojg8mTZQ5mYt5MYfpbmywZusoyqhWVZV+bAHKJFk1q0UWLjfo
L+TkJLka9wjB4r4uPylZion92hW4QEh3lRg7SJU6qfIvmOJMaihRWK77c4S7BvZ2
NG05XST/cRyZviSRtGbllqhzBjS50zl5oCCmwu/L4muZGaBYT0/DiQgvM8TI1XeB
9si16xg+KdE76tR+5g+Hn9Mh6ywi7hwp55UZHnRmgvvXHB6spBG2LQNqVNtPkWJV
CzY9MsNqjVc=
=y80J
-----END PGP SIGNATURE-----

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmbS4a8RHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKD8kw//Tj6k2S7YA5lptSWx/WLTaAlhp8LAgeXf
uEahjUqa/dlSomflETuEEO5w+/NQrOm6uZjCDppiX6jRrT6E4siciYU/fA3Z0nHs
3MhBhuhXC4eRgMB40JqPngqU+dTo4CVMr3bESHmypZ/e2G0IUVQ5z0OIXRMnD/vG
kvoKpCD9aA9PmRdPTEVkHkJKLqWoNZ6SrmUCswE7mgMMvtc5UfOCtYOSH4fIkoqw
cLzzPcqHL0qydfuDgiWm6McByQvOoIhS4TfCySD38hjD1ltK7cpiYjC+yMNvE49V
e1QEAmiDtoLL+CukeEUUf3m8NqGIPLi0zjOWigv0OM4sJxrXrEZDFUbjHOe7NNe+
rFSBofizgbYp2w4+RpIVI3uPi60K24tFndlPaD19CQJ53IUCic1Fy2kmq2GpqnzJ
Yppuh1Wl5z382sT0U1KCQd9ll2LpoLb18asyFa6WcOOFqjYZ74JZReqBVjybmLAW
8+JurMp5i63rmx00lnadQ/TqSHfNnv+ivTqT4lYHp7j01qLqEyFBfK8virh40866
XvSlknQZnhIrPn1VRRtPr1yxjuyXkGQvJUJ7E7W+cEbfb3CYXBmfQGpNrS1AW4LU
Q+4jGoENJ8pN8zIJohDwmgW/gkc1MlvCOHdZmHT5ATmG5T9HLb3up2DfDsSmTF6X
sW4jWzAZuHA=
=YcM4
-----END PGP SIGNATURE-----

@ -1,19 +1,19 @@
# Conditionalize Ocaml support. This looks ass-backwards, but it's not.
%ifarch %{ocaml_native_compiler}
%bcond_without ocaml
%else
%ifarch %{ix86}
%bcond_with ocaml
%else
%bcond_without ocaml
%endif
# Verify tarball signature with GPGv2.
%global verify_tarball_signature 1
Name: hivex
Version: 1.3.21
Release: 3%{?dist}
Version: 1.3.24
Release: 2%{?dist}
Summary: Read and write Windows Registry binary hive files
License: LGPLv2
License: LGPL-2.1-only AND LGPL-2.0-or-later AND GPL-2.0-or-later
URL: http://libguestfs.org/
Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz
@ -26,8 +26,8 @@ Source1: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz.s
Source2: libguestfs.keyring
%endif
Patch0000: 0001-lib-write-improve-key-collation-compatibility-with-Windows.patch
BuildRequires: make
BuildRequires: autoconf, automake, libtool, gettext-devel
BuildRequires: perl-interpreter
BuildRequires: perl-devel
BuildRequires: perl-generators
@ -62,18 +62,14 @@ BuildRequires: rubygem(rdoc)
BuildRequires: readline-devel
BuildRequires: libxml2-devel
%if 0%{verify_tarball_signature}
BuildRequires: gnupg2
BuildRequires: gnupg2
%endif
BuildRequires: make
Requires: %{name}-libs = %{version}-%{release}
Conflicts: %{name} < 1.3.20-6
Obsoletes: %{name} < 1.3.20-6
# https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_granted_exceptions
Provides: bundled(gnulib)
%description
Hive files are the undocumented binary files that Windows uses to
@ -108,6 +104,7 @@ For Ruby bindings, see 'ruby-hivex'.
%package libs
Summary: Library for %{name}
License: LGPL-2.1-only AND LGPL-2.0-or-later
Conflicts: %{name} < 1.3.20-6
Obsoletes: %{name} < 1.3.20-6
@ -130,7 +127,8 @@ for %{name}.
%if !0%{?rhel}
%package static
Summary: Statically linked library for %{name}
Requires: %{name}-libs = %{version}-%{release}
License: LGPL-2.1-only AND LGPL-2.0-or-later
Requires: %{name}-devel = %{version}-%{release}
%description static
@ -142,7 +140,8 @@ for %{name}.
%if %{with ocaml}
%package -n ocaml-%{name}
Summary: OCaml bindings for %{name}
Requires: %{name}-libs = %{version}-%{release}
License: LGPL-2.0-or-later
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description -n ocaml-%{name}
@ -154,8 +153,9 @@ programs which use %{name} you will also need ocaml-%{name}-devel.
%package -n ocaml-%{name}-devel
Summary: OCaml bindings for %{name}
Requires: ocaml-%{name} = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
License: LGPL-2.0-or-later
Requires: ocaml-%{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
%description -n ocaml-%{name}-devel
@ -166,8 +166,8 @@ required to use the OCaml bindings for %{name}.
%package -n perl-%{name}
Summary: Perl bindings for %{name}
License: LGPL-2.0-or-later AND GPL-2.0-or-later
Requires: %{name}-libs = %{version}-%{release}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%description -n perl-%{name}
@ -176,6 +176,7 @@ perl-%{name} contains Perl bindings for %{name}.
%package -n python3-%{name}
Summary: Python 3 bindings for %{name}
License: LGPL-2.0-or-later
Requires: %{name}-libs = %{version}-%{release}
%description -n python3-%{name}
@ -184,6 +185,7 @@ python3-%{name} contains Python 3 bindings for %{name}.
%package -n ruby-%{name}
Summary: Ruby bindings for %{name}
License: LGPL-2.0-or-later
Requires: %{name}-libs = %{version}-%{release}
Requires: ruby(release)
Requires: ruby
@ -200,6 +202,8 @@ ruby-%{name} contains Ruby bindings for %{name}.
%setup -q
%autopatch -p1
autoreconf -fi
%build
%configure \
@ -232,17 +236,6 @@ rm $RPM_BUILD_ROOT%{python3_sitearch}/libhivexmod.la
%check
# Disable some gnulib tests which fail on Arm and POWER and S/390
# (2020-07, 2020-12):
for f in test-float test-perror2 test-pthread_sigmask1 test-strerror_r; do
pushd gnulib/tests
make $f
rm -f $f
touch $f
chmod +x $f
popd
done
if ! make check -k; then
for f in $( find -name test-suite.log | xargs grep -l ^FAIL: ); do
echo
@ -254,7 +247,7 @@ if ! make check -k; then
fi
%files -f %{name}.lang
%doc README
%doc README.md
%license LICENSE
%{_bindir}/hivexget
%{_bindir}/hivexml
@ -265,7 +258,7 @@ fi
%files libs
%doc README
%doc README.md
%license LICENSE
%{_libdir}/libhivex.so.*
@ -287,20 +280,21 @@ fi
%if %{with ocaml}
%files -n ocaml-%{name}
%doc README
%{_libdir}/ocaml/hivex
%exclude %{_libdir}/ocaml/hivex/*.a
%exclude %{_libdir}/ocaml/hivex/*.cmxa
%exclude %{_libdir}/ocaml/hivex/*.cmx
%exclude %{_libdir}/ocaml/hivex/*.mli
%doc README.md
%dir %{_libdir}/ocaml/hivex
%{_libdir}/ocaml/hivex/META
%{_libdir}/ocaml/hivex/*.cma
%{_libdir}/ocaml/hivex/*.cmi
%{_libdir}/ocaml/stublibs/*.so
%{_libdir}/ocaml/stublibs/*.so.owner
%files -n ocaml-%{name}-devel
%{_libdir}/ocaml/hivex/*.a
%ifarch %{ocaml_native_compiler}
%{_libdir}/ocaml/hivex/*.cmxa
%{_libdir}/ocaml/hivex/*.cmx
%endif
%{_libdir}/ocaml/hivex/*.a
%{_libdir}/ocaml/hivex/*.mli
%endif
@ -325,21 +319,138 @@ fi
%changelog
* Tue Sep 14 2021 Laszlo Ersek <lersek@redhat.com> - 1.3.21-3
- Bring key collation order closer to that of Windows.
- Resolves: RHBZ#1648524.
* Wed Oct 30 2024 Troy Dawson <tdawson@redhat.com> - 1.3.24-2
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Fri Oct 25 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 1.3.24-1
- Rebuilt for MSVSphere 10
* Mon Sep 09 2024 Richard W.M. Jones <rjones@redhat.com> - 1.3.24-1
- Rebase to Fedora Rawhide
resolves: RHEL-56804
* Thu Aug 08 2024 Troy Dawson <tdawson@redhat.com> - 1.3.23-24
- Bump release for Aug 2024 java mass rebuild
* Tue Jun 25 2024 Troy Dawson <tdawson@redhat.com> - 1.3.23-23
- Bump release for June 2024 mass rebuild
* Wed Jun 19 2024 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-22
- OCaml 5.2.0 ppc64le fix
* Wed Jun 12 2024 Jitka Plesnikova <jplesnik@redhat.com> - 1.3.23-21
- Perl 5.40 rebuild
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 1.3.23-20
- Rebuilt for Python 3.13
* Wed May 29 2024 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-19
- OCaml 5.2.0 for Fedora 41
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.23-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.23-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 03 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.23-16
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3
* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-15
- OCaml 5.1.1 + s390x code gen fix for Fedora 40
* Tue Dec 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-14
- OCaml 5.1.1 rebuild for Fedora 40
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.3.21-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Oct 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-13
- OCaml 5.1 rebuild for Fedora 40
* Mon Aug 07 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-12
- Fix Ruby minitest support (RHBZ#2229653)
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.23-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jul 13 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.3.23-10
- Perl 5.38 re-rebuild updated packages
* Tue Jul 11 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-9
- OCaml 5.0 rebuild for Fedora 39
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.3.23-8
- Perl 5.38 rebuild
* Mon Jul 10 2023 Jerry James <loganjerry@gmail.com> - 1.3.23-7
- OCaml 5.0.0 rebuild
- Build the OCaml interface on all architectures but i386
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 1.3.23-6
- Rebuilt for Python 3.12
* Mon Jun 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-5
- Migrated to SPDX license
* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-4
- Bump release and rebuild.
* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-3
- Rebuild OCaml packages for F38
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.23-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jan 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.23-1
- New development version 1.3.23
- Second attempt to fix Python 3.12 removal of distutils (RHBZ#2155013)
- Remove gnulib since it is no longer bundled by upstream.
* Wed Jan 04 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.21-13
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2
* Tue Jan 03 2023 Richard W.M. Jones <rjones@redhat.com> - 1.3.21-12
- Upstream fix for Python 3.12 removal of distutils (RHBZ#2155013)
- Unconditionally run autoreconf.
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.21-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 20 2022 Python Maint <python-maint@redhat.com> - 1.3.21-10
- Rebuilt for Python 3.11
* Sat Jun 18 2022 Richard W.M. Jones <rjones@redhat.com> - 1.3.21-9
- OCaml 4.14.0 rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.3.21-8
- Rebuilt for Python 3.11
* Tue May 31 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.3.21-7
- Perl 5.36 rebuild
* Fri Feb 04 2022 Richard W.M. Jones <rjones@redhat.com> - 1.3.21-6
- OCaml 4.13.1 rebuild to remove package notes
* Wed Jan 26 2022 Vít Ondruch <vondruch@redhat.com> - 1.3.21-5
- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_3.1
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.21-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Oct 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.3.21-3
- Bump release and rebuild.
* Mon Oct 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.3.21-2
- OCaml 4.13.1 build
* Mon Aug 2 2021 Richard W.M. Jones <rjones@redhat.com> - 1.3.21-1
- New upstream version 1.3.21.
- Fixes CVE-2021-3622 limit recursion in ri-records.
* Wed Jun 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.3.20-7
- Bump and rebuild
resolves: rhbz#1975314
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.20-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jun 14 2021 Matt Coleman <matt@datto.com> - 1.3.20-7
- Correct the static package's dependency
* Fri Jun 11 2021 Matt Coleman <matt@datto.com> - 1.3.20-6
- Move the library into a separate package: hivex-libs
@ -347,9 +458,15 @@ fi
* Fri Jun 11 2021 Matt Coleman <matt@datto.com> - 1.3.20-5
- Mark LICENSE as a license file
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.3.20-4
- Rebuilt for Python 3.10
* Wed Jun 2 2021 Richard W.M. Jones <rjones@redhat.com> - 1.3.20-3
- Add gating tests (for RHEL 9)
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.3.20-2
- Perl 5.34 rebuild
* Mon May 3 2021 Richard W.M. Jones <rjones@redhat.com> - 1.3.20-1
- New upstream version 1.3.20.
- Fixes CVE-2021-3504 missing bounds check in hivex_open.

Loading…
Cancel
Save