From 3c01d125dee9b8ad4957dd7923ff8d6905d5e5f5ff87eec99809d5fc5c2e6915 Mon Sep 17 00:00:00 2001 From: Petr Vorel Date: Mon, 3 Oct 2022 11:54:24 +0000 Subject: [PATCH] Accepting request 1007675 from home:pevik:branches:network:utilities - Backport 2 fixes for bsc#1203957: 0001-ping-Add-SA_RESTART-to-sa_flags.patch 0002-ping-Make-ping_rts-struct-static.patch OBS-URL: https://build.opensuse.org/request/show/1007675 OBS-URL: https://build.opensuse.org/package/show/network:utilities/iputils?expand=0&rev=102 --- 0001-ping-Add-SA_RESTART-to-sa_flags.patch | 40 +++++++++++++++++++++ 0002-ping-Make-ping_rts-struct-static.patch | 38 ++++++++++++++++++++ iputils.changes | 7 ++++ iputils.spec | 2 ++ 4 files changed, 87 insertions(+) create mode 100644 0001-ping-Add-SA_RESTART-to-sa_flags.patch create mode 100644 0002-ping-Make-ping_rts-struct-static.patch diff --git a/0001-ping-Add-SA_RESTART-to-sa_flags.patch b/0001-ping-Add-SA_RESTART-to-sa_flags.patch new file mode 100644 index 0000000..15e3cd4 --- /dev/null +++ b/0001-ping-Add-SA_RESTART-to-sa_flags.patch @@ -0,0 +1,40 @@ +From ea0eb08a17866f1bc586f0c3d5c2a44babd7a67f Mon Sep 17 00:00:00 2001 +From: Petr Vorel +Date: Tue, 20 Sep 2022 21:30:12 +0200 +Subject: [PATCH 1/2] ping: Add SA_RESTART to sa_flags + +To avoid missing output in write on aarch64. +This error was in ping since ever (since git era), +but got visible only after 4655ecc ("libcommon: check standard streams +status at exit"). + +Issue found with LTP net stress interface tests. + +Fixes: 3337034 ("Initial import of iputils") +Fixes: https://github.com/iputils/iputils/issues/424 + +Reported-by: Petr Vorel +Suggested-by: Benjamin Poirier +Suggested-by: Cyril Hrubis +Reviewed-by: Cyril Hrubis +Signed-off-by: Petr Vorel +[ upstream status: https://github.com/iputils/iputils/commit/09f1b3706e90e748910c82612bc9d28fbfe0e9fb ] +--- + ping/ping.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ping/ping.h b/ping/ping.h +index 007ae28..3fb5156 100644 +--- a/ping/ping.h ++++ b/ping/ping.h +@@ -316,6 +316,7 @@ static inline void set_signal(int signo, void (*handler)(int)) + memset(&sa, 0, sizeof(sa)); + + sa.sa_handler = (void (*)(int))handler; ++ sa.sa_flags = SA_RESTART; + sigaction(signo, &sa, NULL); + } + +-- +2.37.3 + diff --git a/0002-ping-Make-ping_rts-struct-static.patch b/0002-ping-Make-ping_rts-struct-static.patch new file mode 100644 index 0000000..e8aae40 --- /dev/null +++ b/0002-ping-Make-ping_rts-struct-static.patch @@ -0,0 +1,38 @@ +From eb6fb669f64aa3af2baf0e5cef5d46793fc97129 Mon Sep 17 00:00:00 2001 +From: Petr Vorel +Date: Tue, 20 Sep 2022 22:23:44 +0200 +Subject: [PATCH 2/2] ping: Make ping_rts struct static + +This allows accessing global_rts->exiting in sigexit() signal handler +after main() has exited. Problem occurred on aarch64, which occasionally +delivered signal after main() has exited, which causes segfault. + +Fixes: b3a41a6 ("ping: move global variables to runtime config structure") +Fixes: https://github.com/iputils/iputils/issues/423 +Closes: https://github.com/iputils/iputils/pull/425 + +Reported-by: linzhanglong +Suggested-by: Cyril Hrubis +Reviewed-by: Cyril Hrubis +Signed-off-by: Petr Vorel +[ upstream status: https://github.com/iputils/iputils/commit/7861af993bf47fccaf37c5659d66c09832844ae3 ] +--- + ping/ping.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ping/ping.c b/ping/ping.c +index 7a27b63..176410a 100644 +--- a/ping/ping.c ++++ b/ping/ping.c +@@ -267,7 +267,7 @@ main(int argc, char **argv) + socket_st sock6 = { .fd = -1 }; + char *target; + char *outpack_fill = NULL; +- struct ping_rts rts = { ++ static struct ping_rts rts = { + .interval = 1000, + .preload = 1, + .lingertime = MAXWAIT * 1000, +-- +2.37.3 + diff --git a/iputils.changes b/iputils.changes index 806e828..354a3c9 100644 --- a/iputils.changes +++ b/iputils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Oct 3 11:45:30 UTC 2022 - Petr Vorel + +- Backport 2 fixes for bsc#1203957: + 0001-ping-Add-SA_RESTART-to-sa_flags.patch + 0002-ping-Make-ping_rts-struct-static.patch + ------------------------------------------------------------------- Mon Feb 14 09:03:06 UTC 2022 - pgajdos@suse.com diff --git a/iputils.spec b/iputils.spec index 932c804..e5078a7 100644 --- a/iputils.spec +++ b/iputils.spec @@ -24,6 +24,8 @@ License: BSD-3-Clause AND GPL-2.0-or-later Group: Productivity/Networking/Other URL: https://github.com/iputils/iputils Source0: https://github.com/iputils/iputils/archive/%{version}.tar.gz +Patch1: 0001-ping-Add-SA_RESTART-to-sa_flags.patch +Patch2: 0002-ping-Make-ping_rts-struct-static.patch BuildRequires: docbook5-xsl-stylesheets BuildRequires: docbook_5 BuildRequires: iproute2