diff options
author | Guillaume Le Vaillant <glv@posteo.net> | 2021-10-15 10:04:18 +0200 |
---|---|---|
committer | Guillaume Le Vaillant <glv@posteo.net> | 2021-10-15 11:16:58 +0200 |
commit | 2f0986b0f7cbf4dec5a3e575c67a508cf71c6dd5 (patch) | |
tree | 405da711d1641c008ec8d399680de2144a8df16f | |
parent | 87d04cdd877492ce42b371d0c4822b2007eddc11 (diff) | |
download | guix-2f0986b0f7cbf4dec5a3e575c67a508cf71c6dd5.tar.gz |
gnu: libhx: Update to 4.1.
* gnu/packages/patches/libhx-fix-double-free-bug.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/c.scm (libhx): Update to 4.1. [source]: Remove patch.
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/c.scm | 5 | ||||
-rw-r--r-- | gnu/packages/patches/libhx-fix-double-free-bug.patch | 80 |
3 files changed, 2 insertions, 84 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 8c30eaafba..17edc03049 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1380,7 +1380,6 @@ dist_patch_DATA = \ %D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnomeui-utf8.patch \ %D%/packages/patches/libgrss-CVE-2016-2001.patch \ - %D%/packages/patches/libhx-fix-double-free-bug.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-typos.patch \ %D%/packages/patches/libofa-ftbfs-1.diff \ diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 6b6eddaa09..e00e9920f3 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -252,15 +252,14 @@ whose behaviour is inconsistent across *NIX flavours.") (define-public libhx (package (name "libhx") - (version "4.0.1") + (version "4.1") (source (origin (method url-fetch) (uri (string-append "https://inai.de/files/libhx/" "libHX-" version ".tar.xz")) (sha256 - (base32 "1f4rmarym1j368cbxhqzyvdn5dk4bh8951s19ffqwql16anqsgfr")) - (patches (search-patches "libhx-fix-double-free-bug.patch")))) + (base32 "1mifpzxr5kma7gawhv1vbga8j5qi8jgka0axr48v08bdpb83pya2")))) (build-system gnu-build-system) (home-page "https://inai.de/projects/libhx/") (synopsis "C library with common data structures and functions") diff --git a/gnu/packages/patches/libhx-fix-double-free-bug.patch b/gnu/packages/patches/libhx-fix-double-free-bug.patch deleted file mode 100644 index 80c2c6ca84..0000000000 --- a/gnu/packages/patches/libhx-fix-double-free-bug.patch +++ /dev/null @@ -1,80 +0,0 @@ -From a08eabc6e5a3e0a9c7a15ca15ff7d450ecb6db88 Mon Sep 17 00:00:00 2001 -From: Jan Engelhardt <jengelh@inai.de> -Date: Tue, 12 Oct 2021 17:32:43 +0200 -Subject: [PATCH] io: fix a use-after-free in conjunction with HX_realpath - -HX_readlink(&x, ...) forgot to set x to nullptr upon error, which -trips up subsequent calls to HX_readlink with the very same x. - -Fixes: v3.26-1-g97f4be2 ---- - src/io.c | 8 ++++++-- - src/tc-realpath.c | 10 ++++++++++ - 2 files changed, 16 insertions(+), 2 deletions(-) - -diff --git a/src/io.c b/src/io.c -index 95d6fd6..14078fc 100644 ---- a/src/io.c -+++ b/src/io.c -@@ -316,8 +316,10 @@ EXPORT_SYMBOL int HX_readlink(hxmc_t **target, const char *path) - ssize_t ret = readlink(path, *target, linkbuf_size); - if (ret < 0) { - int saved_errno = errno; -- if (allocate) -+ if (allocate) { - HXmc_free(*target); -+ *target = nullptr; -+ } - return -(errno = saved_errno); - } - if (static_cast(size_t, ret) < linkbuf_size) { -@@ -327,8 +329,10 @@ EXPORT_SYMBOL int HX_readlink(hxmc_t **target, const char *path) - linkbuf_size *= 2; - if (HXmc_setlen(target, linkbuf_size) == NULL) { - int saved_errno = errno; -- if (allocate) -+ if (allocate) { - HXmc_free(*target); -+ *target = nullptr; -+ } - return -(errno = saved_errno); - } - } -diff --git a/src/tc-realpath.c b/src/tc-realpath.c -index 5dd9aa2..c2ef15a 100644 ---- a/src/tc-realpath.c -+++ b/src/tc-realpath.c -@@ -11,6 +11,7 @@ - #include <stdlib.h> - #include <libHX/io.h> - #include <libHX/option.h> -+#include <libHX/string.h> - - static unsigned int rp_flags; - static unsigned int rp_absolute; -@@ -42,6 +43,14 @@ static bool rp_get_options(int *argc, const char ***argv) - return true; - } - -+static void t_1(void) -+{ -+ hxmc_t *tmp = HXmc_strinit(""); -+ /* two components, so that HX_readlink gets called twice */ -+ HX_realpath(&tmp, "/dev/tty", HX_REALPATH_DEFAULT); -+ HXmc_free(tmp); -+} -+ - int main(int argc, const char **argv) - { - hxmc_t *res; -@@ -49,6 +58,7 @@ int main(int argc, const char **argv) - - if (!rp_get_options(&argc, &argv)) - return EXIT_FAILURE; -+ t_1(); - - res = NULL; - while (--argc > 0) { --- -2.33.0 - |