Accepting request 645375 from devel:tools

- Handle empty event name gracefully on ppc.
  New patch: oprofile-handle-empty-event-name-spec-gracefully-for-ppc.patch (forwarded request 645374 from jones_tony)

OBS-URL: https://build.opensuse.org/request/show/645375
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/oprofile?expand=0&rev=51
This commit is contained in:
Dominique Leuenberger 2018-10-31 12:15:14 +00:00 committed by Git OBS Bridge
commit 2dfb028d57
3 changed files with 47 additions and 1 deletions

View File

@ -0,0 +1,38 @@
From: William Cohen <wcohen@redhat.com>
Date: Fri Aug 3 10:10:12 2018 -0400
Subject: Handle empty event name spec gracefully for PPC
Git-commit 457d33de89939ffaa523c2a6377ed7d1506ce255
References: none
Signed-off-by: Tony Jones <tonyj@suse.de>
Handle empty event name spec gracefully for PPC
During testing Michael Petlan found that the giving an empty event
name in the event spec to operf on PPC machines would cause operf
crash. Running the following following command would demonstrate
this problem:
operf -e : /bin/ls
The problem was traced to event_name in _handle_powerpc_event_spec
function having a length of 0. The strncmp using event_name in
_handle_powerpc_event_spec would indicate a match and cause strncpy to
be called to copy zero bytes. The zero length strncpy would crash
operf. Added a check to make ensure that the string is non-zero
length.
Signed-off-by: William Cohen <wcohen@redhat.com>
diff --git a/libpe_utils/op_pe_utils.cpp b/libpe_utils/op_pe_utils.cpp
index f9638c77..2cae7840 100644
--- a/libpe_utils/op_pe_utils.cpp
+++ b/libpe_utils/op_pe_utils.cpp
@@ -588,7 +588,7 @@ static string _handle_powerpc_event_spec(string event_spec)
}
if (line[0] == ' ' || line[0] == '\t')
continue;
- if (!strncmp(line, event_name, evt_name_len)) {
+ if (evt_name_len && !strncmp(line, event_name, evt_name_len)) {
// Found a potential match. Check if it's a perfect match.
string save_event_name = event_name;
size_t full_evt_len = index(line, ':') - line;

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Mon Oct 29 21:07:04 UTC 2018 - Tony Jones <tonyj@suse.com>
- Handle empty event name gracefully on ppc.
New patch: oprofile-handle-empty-event-name-spec-gracefully-for-ppc.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jul 26 15:57:53 UTC 2018 - tonyj@suse.com Thu Jul 26 15:57:53 UTC 2018 - tonyj@suse.com

View File

@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9) # license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative. # 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/
# #
@ -30,6 +30,7 @@ Source4: jvmpi.h
Source5: README-BEFORE-ADDING-PATCHES Source5: README-BEFORE-ADDING-PATCHES
Patch1: %{name}-no-libjvm-version.patch Patch1: %{name}-no-libjvm-version.patch
Patch2: %{name}-pfm-ppc.patch Patch2: %{name}-pfm-ppc.patch
Patch3: %{name}-handle-empty-event-name-spec-gracefully-for-ppc.patch
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake
BuildRequires: binutils-devel BuildRequires: binutils-devel
@ -101,6 +102,7 @@ from supported virtual machines.
%setup -q %setup -q
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1
mkdir -p java/include mkdir -p java/include
# copy files necessary to build Java agent libraries # copy files necessary to build Java agent libraries