Resolves: RHEL-29529

This commit is contained in:
Frank Ch. Eigler 2024-04-27 10:02:32 -04:00
parent e48e52ccbf
commit d71a89c5db
4 changed files with 17 additions and 97 deletions

34
.gitignore vendored
View File

@ -58,42 +58,10 @@
/systemtap-4.5-0.20210129gitea81249b90b9.tar.gz
/systemtap-4.5-0.202101291559git9e1a0f5703ad.tar.gz
/systemtap-4.5-0.202102101544git8d5e0abc542c.tar.gz
/systemtap-4.5-0.202102191905git0f623095ee3e.tar.gz
/systemtap-4.5-0.202102231232git663a93e8b82b.tar.gz
/systemtap-4.5-0.202104140931gitad00fb87e.tar.gz
/systemtap-4.5-0.202104140933gitad00fb87e.tar.gz
/systemtap-4.5-0.202105041345git02b6be05fb76.tar.gz
/systemtap-4.5.tar.gz
/systemtap-4.6-16261989g7c2751e3.tar.gz
/systemtap-4.6~pre16262008gbff2b2ff.tar.gz
/systemtap-4.6~pre16262012gc7f1c12e.tar.gz
/systemtap-4.6~pre16262021g84ef6bd9.tar.gz
/systemtap-4.6~pre16291338gf2c14776.tar.gz
/systemtap-4.6.tar.gz
/systemtap-4.7~pre16378386g61a4c8f8.tar.gz
/systemtap-4.7~pre16383943gecab2afe.tar.gz
/systemtap-4.7~pre16388948g209b5a19.tar.gz
/systemtap-4.7~pre16395042gefae8a3d.tar.gz
/systemtap-4.7~pre16432070g1d2cb8b3.tar.gz
/systemtap-4.7~pre16433134g7d871ab5.tar.gz
/systemtap-4.7~pre16468670g9f253544.tar.gz
/systemtap-4.7.tar.gz
/systemtap-4.8~pre16557277g2882dcc9.tar.gz
/systemtap-4.8~pre16578235g069e109c.tar.gz
/systemtap-4.8~pre16594727g09f1b7bb.tar.gz
/systemtap-4.8~pre16594741g5bdc37b9.tar.gz
/systemtap-4.8~pre16650659g6a096a7d.tar.gz
/systemtap-4.8.tar.gz
/systemtap-4.9.tar.gz
/systemtap-5.0~pre16885197g6b17715f.tar.gz
/systemtap-5.0~pre16885234gd98d6c2d.tar.gz
/systemtap-5.0~pre16890184ge891a37e.tar.gz
/systemtap-5.0~pre16891249ge891a37e.tar.gz
/systemtap-5.0~pre16958465gca71442b.tar.gz
/systemtap-5.0.tar.gz
/systemtap-5.1~pre17056120g2ccc0c4c.tar.gz
/systemtap-5.1~pre17056139g6c0b92b3.tar.gz
/systemtap-5.1~pre17059382g67086c54.tar.gz
/systemtap-5.1~pre17060399gb6abf4bd.tar.gz
/systemtap-5.1~pre17062114g2604d135.tar.gz
/systemtap-5.1~pre17062192g5fd8daba.tar.gz
/systemtap-5.1.tar.gz

View File

@ -1,59 +0,0 @@
commit 0fef0bd60ff4b359a32da52262855dfe82fe51ae
gpg: Signature made Tue 14 Nov 2023 03:20:12 PM EST
gpg: using RSA key 4B35DCD2EA45C4E0783135BC8094BE9C9F4696A1
gpg: Can't check signature: No public key
Author: Yichun Zhang (agentzh) <yichun@openresty.com>
Date: Fri Nov 10 21:51:56 2023 -0800
PR31051: memory and uprobe leaks in early uprobe registraton code when errors happen
diff --git a/runtime/linux/uprobes-inode.c b/runtime/linux/uprobes-inode.c
index 997f4528d..289cce00b 100644
--- a/runtime/linux/uprobes-inode.c
+++ b/runtime/linux/uprobes-inode.c
@@ -529,6 +529,16 @@ stapiu_init(struct stapiu_consumer *consumers, size_t nconsumers)
}
if (unlikely(ret != 0)) {
+ for ( ;; ) {
+ struct stapiu_consumer *c = &consumers[i];
+ // protect against conceivable stapiu_refresh() at same time
+ mutex_lock(& c->consumer_lock);
+ stapiu_consumer_unreg(c);
+ mutex_unlock(& c->consumer_lock);
+ if (i == 0)
+ break;
+ i--;
+ }
return ret;
}
@@ -545,7 +555,27 @@ stapiu_init(struct stapiu_consumer *consumers, size_t nconsumers)
break;
}
}
- return ret;
+
+ if (unlikely(ret != 0)) {
+ int j;
+ for (j = 0; j < nconsumers; ++j) {
+ struct stapiu_consumer *c = &consumers[j];
+ // protect against conceivable stapiu_refresh() at same time
+ mutex_lock(& c->consumer_lock);
+ stapiu_consumer_unreg(c);
+ mutex_unlock(& c->consumer_lock);
+ }
+ for ( ;; ) {
+ struct stapiu_consumer *c = &consumers[i];
+ stap_cleanup_task_finder_target(&c->finder);
+ if (i == 0)
+ break;
+ i--;
+ }
+ return ret;
+ }
+
+ return 0;
}

View File

@ -1 +1,2 @@
SHA512 (systemtap-5.1~pre17062192g5fd8daba.tar.gz) = 423b09c001a2446d807be9fb8b66226545dddb15e7e57af01780966b17af5e2d8c16f44ce3f77d9a884c4e64a379604f9fb493b2a0f5e6ae50d65de19d9af992
SHA512 (systemtap-5.1.tar.gz) = da0fe237d2124031a5786d1221dbb420d90da5497376715fd43a7a9f61a354a229c1128e67ce6becbc012aa3796dc5d337149e239e3c1def0651b179e5bf199f

View File

@ -92,7 +92,10 @@
\
g stapusr 156\
g stapsys 157\
g stapdev 158
g stapdev 158\
g stapunpriv 159\
u stapunpriv 159 "systemtap unprivileged user" /var/lib/stapunpriv /sbin/nologin\
m stapunpriv stapunpriv
%define _systemtap_server_preinstall \
# See systemd-sysusers(8) sysusers.d(5)\
@ -117,7 +120,7 @@ m stapdev stapdev
Name: systemtap
# PRERELEASE
Version: 5.1~pre17062192g5fd8daba
Version: 5.1
Release: 1%{?release_override}%{?dist}
# for version, see also configure.ac
@ -153,7 +156,7 @@ Release: 1%{?release_override}%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
Source: %{name}-%{version}.tar.gz
Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
# Build*
BuildRequires: make
@ -842,6 +845,9 @@ echo '%_systemtap_runtime_preinstall' | systemd-sysusers --replace=%{_sysusersdi
getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr
getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys
getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev
getent passwd stapunpriv >/dev/null || \
useradd -c "Systemtap Unprivileged User" -u 159 -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv 2>/dev/null || \
useradd -c "Systemtap Unprivileged User" -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv
%endif
exit 0
@ -1304,7 +1310,11 @@ exit 0
# PRERELEASE
%changelog
* Thu Jan 25 2024 Frank Ch. Eigler <fche@redhat.com> - 5.1-17062192g5fd8daba
* Fri Apr 26 2024 Frank Ch. Eigler <fche@redhat.com> - 5.1-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Thu Jan 25 2024 Frank Ch. Eigler <fche@redhat.com> - 5.1-17062192g5fd8daba
- Automated weekly rawhide release
- Applied spec changes from upstream git