diff --git a/jemalloc.changes b/jemalloc.changes index d1950a9..38b8791 100644 --- a/jemalloc.changes +++ b/jemalloc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Apr 12 20:20:55 UTC 2022 - Martin Liška + +- Add use-volatile-to-workaround-buffer-overflow-false-pos.patch + upstream patch that supports -D_FORTIFY_SOURCE=3. + ------------------------------------------------------------------- Fri Feb 25 09:30:08 UTC 2022 - Guillaume GARDET diff --git a/jemalloc.spec b/jemalloc.spec index 3d7b81a..a1850d9 100644 --- a/jemalloc.spec +++ b/jemalloc.spec @@ -1,7 +1,7 @@ # # spec file for package jemalloc # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -25,6 +25,7 @@ License: BSD-2-Clause Group: Development/Libraries/C and C++ URL: http://jemalloc.net/ Source: https://github.com/jemalloc/jemalloc/releases/download/%version/jemalloc-%version.tar.bz2 +Patch0: use-volatile-to-workaround-buffer-overflow-false-pos.patch BuildRequires: docbook-xsl-stylesheets BuildRequires: libxslt BuildRequires: pkgconfig diff --git a/use-volatile-to-workaround-buffer-overflow-false-pos.patch b/use-volatile-to-workaround-buffer-overflow-false-pos.patch new file mode 100644 index 0000000..330c3ad --- /dev/null +++ b/use-volatile-to-workaround-buffer-overflow-false-pos.patch @@ -0,0 +1,73 @@ +From ed5fc14b28ca62a6ba57b65adf557e1ef09037f0 Mon Sep 17 00:00:00 2001 +From: Qi Wang +Date: Wed, 23 Mar 2022 16:31:40 -0700 +Subject: [PATCH] Use volatile to workaround buffer overflow false positives. + +In test/integration/rallocx, full usable size is checked which may confuse +overflow detection. +--- + test/integration/rallocx.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +diff --git a/test/integration/rallocx.c b/test/integration/rallocx.c +index d4a48fce..68b8f381 100644 +--- a/test/integration/rallocx.c ++++ b/test/integration/rallocx.c +@@ -41,7 +41,11 @@ get_large_size(size_t ind) { + } + + TEST_BEGIN(test_grow_and_shrink) { +- void *p, *q; ++ /* ++ * Use volatile to workaround buffer overflow false positives ++ * (-D_FORTIFY_SOURCE=3). ++ */ ++ void *volatile p, *volatile q; + size_t tsz; + #define NCYCLES 3 + unsigned i, j; +@@ -85,9 +89,13 @@ TEST_BEGIN(test_grow_and_shrink) { + TEST_END + + static bool +-validate_fill(const void *p, uint8_t c, size_t offset, size_t len) { ++validate_fill(void *p, uint8_t c, size_t offset, size_t len) { + bool ret = false; +- const uint8_t *buf = (const uint8_t *)p; ++ /* ++ * Use volatile to workaround buffer overflow false positives ++ * (-D_FORTIFY_SOURCE=3). ++ */ ++ uint8_t *volatile buf = (uint8_t *)p; + size_t i; + + for (i = 0; i < len; i++) { +@@ -104,7 +112,11 @@ validate_fill(const void *p, uint8_t c, size_t offset, size_t len) { + } + + TEST_BEGIN(test_zero) { +- void *p, *q; ++ /* ++ * Use volatile to workaround buffer overflow false positives ++ * (-D_FORTIFY_SOURCE=3). ++ */ ++ void *volatile p, *volatile q; + size_t psz, qsz, i, j; + size_t start_sizes[] = {1, 3*1024, 63*1024, 4095*1024}; + #define FILL_BYTE 0xaaU +@@ -205,7 +217,11 @@ TEST_BEGIN(test_align_enum) { + TEST_END + + TEST_BEGIN(test_lg_align_and_zero) { +- void *p, *q; ++ /* ++ * Use volatile to workaround buffer overflow false positives ++ * (-D_FORTIFY_SOURCE=3). ++ */ ++ void *volatile p, *volatile q; + unsigned lg_align; + size_t sz; + #define MAX_LG_ALIGN 25 +-- +2.35.1 +