public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/systemd/files/, sys-apps/systemd/
Date: Thu, 28 Apr 2022 01:26:44 +0000 (UTC)	[thread overview]
Message-ID: <1651109194.94948c9cb994f123f6ae59b50e400eb6e617c46f.sam@gentoo> (raw)

commit:     94948c9cb994f123f6ae59b50e400eb6e617c46f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 28 01:25:20 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Apr 28 01:26:34 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94948c9c

sys-apps/systemd: backport -D_FORTIFY_SOURCE=3 patch

Notably not bothering to revbump for now because this manifests
during self-execution during build and FORTIFY_SOURCE=3 is only
available in GCC 12 which isn't even released yet, let alone
exposed or enabled by default in Gentoo.

It's far more likely that systemd 251 will be released (or
at least another RC for it) before we're even close to unleashing
FORTIFY_SOURCE=3 on Gentoo Hardened users by default.

Bug: https://github.com/systemd/systemd/issues/22801
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/250.4-fortify-source-3-malloc.patch      | 42 ++++++++++++++++++++++
 sys-apps/systemd/systemd-250.4-r1.ebuild           |  1 +
 2 files changed, 43 insertions(+)

diff --git a/sys-apps/systemd/files/250.4-fortify-source-3-malloc.patch b/sys-apps/systemd/files/250.4-fortify-source-3-malloc.patch
new file mode 100644
index 000000000000..ed9eb80f21fa
--- /dev/null
+++ b/sys-apps/systemd/files/250.4-fortify-source-3-malloc.patch
@@ -0,0 +1,42 @@
+https://github.com/systemd/systemd/commit/0bd292567a543d124cd303f7dd61169a209cae64
+
+From 0bd292567a543d124cd303f7dd61169a209cae64 Mon Sep 17 00:00:00 2001
+From: Martin Liska <mliska@suse.cz>
+Date: Thu, 31 Mar 2022 10:27:45 +0200
+Subject: [PATCH] Support -D_FORTIFY_SOURCE=3 by using
+ __builtin_dynamic_object_size.
+
+As explained in the issue, -D_FORTIFY_SOURCE=3 requires usage
+of __builtin_dynamic_object_size in MALLOC_SIZEOF_SAFE macro.
+
+Fixes: #22801
+--- a/src/basic/alloc-util.h
++++ b/src/basic/alloc-util.h
+@@ -174,13 +174,23 @@ void* greedy_realloc0(void **p, size_t need, size_t size);
+  * is compatible with _FORTIFY_SOURCES. If _FORTIFY_SOURCES is used many memory operations will take the
+  * object size as returned by __builtin_object_size() into account. Hence, let's return the smaller size of
+  * malloc_usable_size() and __builtin_object_size() here, so that we definitely operate in safe territory by
+- * both the compiler's and libc's standards. Note that __builtin_object_size() evaluates to SIZE_MAX if the
+- * size cannot be determined, hence the MIN() expression should be safe with dynamically sized memory,
+- * too. Moreover, when NULL is passed malloc_usable_size() is documented to return zero, and
++ * both the compiler's and libc's standards. Note that _FORTIFY_SOURCES=3 handles also dynamically allocated
++ * objects and thus it's safer using __builtin_dynamic_object_size if _FORTIFY_SOURCES=3 is used (#22801).
++ * Moreover, when NULL is passed malloc_usable_size() is documented to return zero, and
+  * __builtin_object_size() returns SIZE_MAX too, hence we also return a sensible value of 0 in this corner
+  * case. */
++
++#if defined __has_builtin
++#  if __has_builtin(__builtin_dynamic_object_size)
++#    define MALLOC_SIZEOF_SAFE(x) \
++        MIN(malloc_usable_size(x), __builtin_dynamic_object_size(x, 0))
++#  endif
++#endif
++
++#ifndef MALLOC_SIZEOF_SAFE
+ #define MALLOC_SIZEOF_SAFE(x) \
+         MIN(malloc_usable_size(x), __builtin_object_size(x, 0))
++#endif
+
+ /* Inspired by ELEMENTSOF() but operates on malloc()'ed memory areas: typesafely returns the number of items
+  * that fit into the specified memory block */
+

diff --git a/sys-apps/systemd/systemd-250.4-r1.ebuild b/sys-apps/systemd/systemd-250.4-r1.ebuild
index 0a50c49d2cc6..949d0d02e69c 100644
--- a/sys-apps/systemd/systemd-250.4-r1.ebuild
+++ b/sys-apps/systemd/systemd-250.4-r1.ebuild
@@ -244,6 +244,7 @@ src_prepare() {
 	# Add local patches here
 	PATCHES+=(
 		"${FILESDIR}/250.4-random-seed-hash.patch"
+		"${FILESDIR}/250.4-fortify-source-3-malloc.patch"
 	)
 
 	if ! use vanilla; then


             reply	other threads:[~2022-04-28  1:26 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-28  1:26 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-09-26 19:15 [gentoo-commits] repo/gentoo:master commit in: sys-apps/systemd/files/, sys-apps/systemd/ Mike Gilbert
2024-04-29 17:27 Sam James
2023-12-28  3:53 Sam James
2023-07-06  8:15 Sam James
2023-05-05  4:13 Sam James
2023-04-29  3:50 Mike Gilbert
2023-01-30  2:14 Mike Gilbert
2023-01-13 20:06 Mike Gilbert
2023-01-13  5:33 Sam James
2023-01-11  7:50 Sam James
2022-10-15 18:57 Mike Gilbert
2022-10-14 21:18 Sam James
2022-09-18 15:52 Mike Gilbert
2022-08-02 23:40 Sam James
2022-05-24 22:35 Sam James
2022-05-23 18:35 Mike Gilbert
2022-05-21 22:22 Mike Gilbert
2022-05-07 18:32 Mike Gilbert
2022-04-30  0:30 Sam James
2022-01-15 15:41 Mike Gilbert
2022-01-13 16:29 Mike Gilbert
2021-10-26 15:00 Mike Gilbert
2021-07-20 19:19 Mike Gilbert
2021-07-11 14:41 Mike Gilbert
2021-06-20 17:33 Mike Gilbert
2021-04-27 18:16 Mike Gilbert
2021-03-17 14:19 Mike Gilbert
2020-11-03 15:48 Mike Gilbert
2020-10-14 19:15 Mike Gilbert
2020-09-24 14:51 Mike Gilbert
2020-08-22  1:56 Mike Gilbert
2020-07-06 14:05 Mike Gilbert
2020-06-11  2:29 Mike Gilbert
2020-03-09 21:22 Mike Gilbert
2020-01-26 17:19 Mike Gilbert
2020-01-07  7:19 Mike Gilbert
2019-09-03 15:27 Mike Gilbert
2019-07-31 14:06 Mike Gilbert
2019-06-17 16:19 Mike Gilbert
2019-05-23 12:26 Louis Sautier
2019-05-09 13:41 Mike Gilbert
2019-05-08 17:29 Mike Gilbert
2019-04-05 20:56 Mike Gilbert
2018-10-30 14:34 Mike Gilbert
2018-09-29 15:27 Mike Gilbert
2018-03-26 21:14 Pacho Ramos
2017-12-31  1:40 Mike Gilbert
2017-12-28 16:01 Mike Gilbert
2017-10-28 18:58 Mike Gilbert
2017-10-08 17:11 Mike Gilbert
2017-09-08 21:16 Mike Gilbert
2017-08-13 23:32 Mike Gilbert
2017-07-12 20:23 Mike Gilbert
2017-06-28 17:01 Mike Gilbert
2017-03-12 17:59 Mike Gilbert
2017-01-03 18:15 Mike Gilbert
2016-12-18 23:08 Mike Gilbert
2016-04-16 20:32 Mike Gilbert
2015-12-12 15:17 Mike Gilbert
2015-11-24 16:28 Mike Gilbert
2015-10-25  9:11 Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1651109194.94948c9cb994f123f6ae59b50e400eb6e617c46f.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox