Added patch to fix -s option in hackbench
Added patch to prevent user from erroneously passing negative numbers to hackbench. Resolves: RHEL-36745 Signed-off-by: Anubhav Shelat <ashelat@redhat.com>
This commit is contained in:
parent
46cd83709c
commit
fce6d6d030
39
0001-rt-tests-hackbench-removed-extra-use-of-optind.patch
Normal file
39
0001-rt-tests-hackbench-removed-extra-use-of-optind.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From 64c7f92979ded63ac5a19ea59e9b791e3da1fae4 Mon Sep 17 00:00:00 2001
|
||||
From: Anubhav Shelat <ashelat@redhat.com>
|
||||
Date: Wed, 22 May 2024 10:43:46 -0400
|
||||
Subject: [PATCH 1/2] rt-tests: hackbench: removed extra use of optind
|
||||
|
||||
Currently, using the -s option displays the usage message, even if the
|
||||
option is properly used.
|
||||
|
||||
This is because Commit 778a02b7c519 ("rt-tests: hackbench: drop incorrect
|
||||
and unnecessary usage of optind") forgot to drop a use of optind when
|
||||
processing option 's' which was fixed in this commit.
|
||||
|
||||
Now the -s option works correctly with the proper arguments.
|
||||
|
||||
Note: The next commit in this patchset fixes "ERROR: do not use
|
||||
assignment in if condition" on line 459.
|
||||
|
||||
Signed-off-by: Anubhav Shelat <ashelat@redhat.com>
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
src/hackbench/hackbench.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c
|
||||
index d4924b3cc129..fec8357bef81 100644
|
||||
--- a/src/hackbench/hackbench.c
|
||||
+++ b/src/hackbench/hackbench.c
|
||||
@@ -456,7 +456,7 @@ static void process_options(int argc, char *argv[])
|
||||
use_inet = 1;
|
||||
break;
|
||||
case 's':
|
||||
- if (!(argv[optind] && (datasize = atoi(optarg)) > 0)) {
|
||||
+ if ((datasize = atoi(optarg)) <= 0) {
|
||||
fprintf(stderr, "%s: --datasize|-s requires an integer > 0\n", argv[0]);
|
||||
print_usage_exit(1);
|
||||
}
|
||||
--
|
||||
2.45.1
|
||||
|
@ -0,0 +1,70 @@
|
||||
From cadd661f984c0e6717e681fdaca1ce589b0ed964 Mon Sep 17 00:00:00 2001
|
||||
From: Anubhav Shelat <ashelat@redhat.com>
|
||||
Date: Wed, 22 May 2024 10:43:47 -0400
|
||||
Subject: [PATCH 2/2] rt-tests: hackbench: properly recognize when integer
|
||||
arguments are negative
|
||||
|
||||
hackbench is supposed to catch when the user passes
|
||||
negative arguments to options -f, -g, -l, and -s.
|
||||
|
||||
Previously hackbench would allow options to accept
|
||||
negative arguments, resulting in undefined behavior.
|
||||
|
||||
Now process_options() assigns variables outside of
|
||||
the if considiton where they are used. hackbench will
|
||||
output a usage message if the user inputs a negative
|
||||
argument.
|
||||
|
||||
Signed-off-by: Anubhav Shelat <ashelat@redhat.com>
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
src/hackbench/hackbench.c | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c
|
||||
index fec8357bef81..55be325a38df 100644
|
||||
--- a/src/hackbench/hackbench.c
|
||||
+++ b/src/hackbench/hackbench.c
|
||||
@@ -426,7 +426,8 @@ static void process_options(int argc, char *argv[])
|
||||
}
|
||||
switch (c) {
|
||||
case 'f':
|
||||
- if ((num_fds = atoi(optarg)) <= 0) {
|
||||
+ num_fds = atoi(optarg);
|
||||
+ if (atoi(optarg) <= 0) {
|
||||
fprintf(stderr, "%s: --fds|-f requires an integer > 0\n", argv[0]);
|
||||
print_usage_exit(1);
|
||||
}
|
||||
@@ -435,7 +436,8 @@ static void process_options(int argc, char *argv[])
|
||||
fifo = 1;
|
||||
break;
|
||||
case 'g':
|
||||
- if ((num_groups = atoi(optarg)) <= 0) {
|
||||
+ num_groups = atoi(optarg);
|
||||
+ if (atoi(optarg) <= 0) {
|
||||
fprintf(stderr, "%s: --groups|-g requires an integer > 0\n", argv[0]);
|
||||
print_usage_exit(1);
|
||||
}
|
||||
@@ -444,7 +446,8 @@ static void process_options(int argc, char *argv[])
|
||||
print_usage_exit(0);
|
||||
break;
|
||||
case 'l':
|
||||
- if ((loops = atoi(optarg)) <= 0) {
|
||||
+ loops = atoi(optarg);
|
||||
+ if (atoi(optarg) <= 0) {
|
||||
fprintf(stderr, "%s: --loops|-l requires an integer > 0\n", argv[0]);
|
||||
print_usage_exit(1);
|
||||
}
|
||||
@@ -456,7 +459,8 @@ static void process_options(int argc, char *argv[])
|
||||
use_inet = 1;
|
||||
break;
|
||||
case 's':
|
||||
- if ((datasize = atoi(optarg)) <= 0) {
|
||||
+ datasize = atoi(optarg);
|
||||
+ if (atoi(optarg) <= 0) {
|
||||
fprintf(stderr, "%s: --datasize|-s requires an integer > 0\n", argv[0]);
|
||||
print_usage_exit(1);
|
||||
}
|
||||
--
|
||||
2.45.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
Name: realtime-tests
|
||||
Summary: Programs that test various rt-features
|
||||
Version: 2.7
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.1-or-later
|
||||
URL: https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
|
||||
Source0: https://www.kernel.org/pub/linux/utils/rt-tests/rt-tests-%{version}.tar.xz
|
||||
@ -15,7 +15,8 @@ Requires: bash
|
||||
Requires: bc
|
||||
|
||||
#Patches
|
||||
|
||||
Patch1: 0001-rt-tests-hackbench-removed-extra-use-of-optind.patch
|
||||
Patch2: 0002-rt-tests-hackbench-properly-recognize-when-integer-a.patch
|
||||
%description
|
||||
realtime-tests is a set of programs that test and measure various components of
|
||||
real-time kernel behavior. This package measures timer, signal, and hardware
|
||||
@ -73,6 +74,11 @@ latency. It also tests the functioning of priority-inheritance mutexes.
|
||||
%{_mandir}/man8/determine_maximum_mpps.8.*
|
||||
|
||||
%changelog
|
||||
* Thu May 23 2024 Anubhav Shelat <ashelat@redhat.com> - 2.7-2
|
||||
- Added patch to fix -s option in hackbench
|
||||
- Added patch to prevent user from erroneously passing negative numbers to hackbench.
|
||||
Resolves: RHEL-36745
|
||||
|
||||
* Tue May 07 2024 John Kacur <jkacur@redhat.com> - 2.7-1
|
||||
- Rebase to upstream rt-tests 2.7
|
||||
Resolves: RHEL-30167
|
||||
|
Loading…
Reference in New Issue
Block a user