diff --git a/src_vipa-fix-abend-in-memcpy.patch b/src_vipa-fix-abend-in-memcpy.patch new file mode 100644 index 0000000..4918cac --- /dev/null +++ b/src_vipa-fix-abend-in-memcpy.patch @@ -0,0 +1,35 @@ +From dda5d7f265c382fa1cedd34b6e45e378e1b0c99a Mon Sep 17 00:00:00 2001 +From: Karsten Graul +Date: Wed, 17 Jul 2019 11:07:39 +0200 +Subject: src_vipa: Fix abend in memcpy +References: bsc#1141887 bsc#1142048 bsc#1192860 + +Customer encountered an abend in memcpy(). +get_src_ip_entry() calls dm_hash_val() which itself calls memcpy +to copy a sockaddr structure into local storage, but the specified +length is longer than the length of the sockaddr structure. +The fix is to use the correct length for the respective address family. + +Signed-off-by: Karsten Graul +--- + src_vipa.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src_vipa.c b/src_vipa.c +index 78b2825..776f9d3 100644 +--- a/src_vipa.c ++++ b/src_vipa.c +@@ -706,7 +706,9 @@ unsigned int dm_hash_val(struct sockaddr_storage *s, int masklen) + { + struct sockaddr_storage var; + +- memcpy(&var,s,sizeof(struct sockaddr_storage)); ++ memcpy(&var,s,(s->ss_family == AF_INET) ++ ? sizeof(struct sockaddr_in) ++ : sizeof(struct sockaddr_in6)); + return (s->ss_family == AF_INET) + ? dm_hash_val_ip4(&(((struct sockaddr_in *)&var)->sin_addr), masklen) + : dm_hash_val_ip6(&(((struct sockaddr_in6 *)&var)->sin6_addr), masklen); +-- +2.22.0.windows.1 + diff --git a/src_vipa.changes b/src_vipa.changes index e783cd6..8931e41 100644 --- a/src_vipa.changes +++ b/src_vipa.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Nov 23 14:10:45 UTC 2021 - Jean Delvare + +- src_vipa-fix-abend-in-memcpy.patch: src_vipa: Fix abend in + memcpy (bsc#1141887 bsc#1142048 bsc#1192860) + ------------------------------------------------------------------- Fri Feb 14 19:58:13 UTC 2014 - andreas.stieger@gmx.de diff --git a/src_vipa.spec b/src_vipa.spec index 6175484..ad772d3 100644 --- a/src_vipa.spec +++ b/src_vipa.spec @@ -1,7 +1,7 @@ # # spec file for package src_vipa # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,12 +12,12 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: src_vipa -Url: http://www.ibm.com/developerworks/linux/linux390/useful_add-ons_vipa.html +URL: http://www.ibm.com/developerworks/linux/linux390/useful_add-ons_vipa.html Version: 2.1.0 Release: 0 Summary: Virtual Source IP address support for HA solutions @@ -27,6 +27,7 @@ Source: http://public.dhe.ibm.com/software/dw/linux390/ht_src/%name-%ver Source1: http://www.ibm.com/developerworks/linux/linux390/MD5/src/%name-%version.md5 Patch1: src_vipa-ldlibrarypath.patch Patch2: src_vipa-ignore_ldconfig.patch +Patch3: src_vipa-fix-abend-in-memcpy.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -46,6 +47,7 @@ popd %setup -q %patch1 -p1 %patch2 +%patch3 -p1 %build make SRC_VIPA_PATH=%_libdir