diff options
author | Josh Boyer <jwboyer@fedoraproject.org> | 2013-10-11 08:50:22 -0400 |
---|---|---|
committer | Josh Boyer <jwboyer@fedoraproject.org> | 2013-10-11 08:50:26 -0400 |
commit | 7792df6134ef8e9663a326b5e6af49fd7e3b96a4 (patch) | |
tree | 4dcac83f621476978343913d141407d95ba2a64e /cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch | |
parent | 064673999d41faf2c0c7055f61bf522f75beb379 (diff) | |
download | kernel-7792df6134ef8e9663a326b5e6af49fd7e3b96a4.tar.gz kernel-7792df6134ef8e9663a326b5e6af49fd7e3b96a4.tar.xz kernel-7792df6134ef8e9663a326b5e6af49fd7e3b96a4.zip |
Fix segfault in cpupower set (rhbz 1000439)
Diffstat (limited to 'cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch')
-rw-r--r-- | cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch b/cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch new file mode 100644 index 000000000..dcc6b84b6 --- /dev/null +++ b/cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch @@ -0,0 +1,40 @@ +From cb8e390d258b7f8073afafcbb163976e27346e9d Mon Sep 17 00:00:00 2001 +From: Josh Boyer <jwboyer@fedoraproject.org> +Date: Fri, 11 Oct 2013 08:37:53 -0400 +Subject: [PATCH] cpupower: Fix segfault due to incorrect getopt_long arugments + +If a user calls 'cpupower set --perf-bias 15', the process will end with a +SIGSEGV in libc because cpupower-set passes a NULL optarg to the atoi call. +This is because the getopt_long structure currently has all of the options +as having an optional_argument when they really have a required argument. +We change the structure to use required_argument to match the short options +and it resolves the issue. + +This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1000439 + +Cc: stable@vger.kernel.org +Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> +--- + tools/power/cpupower/utils/cpupower-set.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tools/power/cpupower/utils/cpupower-set.c b/tools/power/cpupower/utils/cpupower-set.c +index dc4de37..bcf1d2f 100644 +--- a/tools/power/cpupower/utils/cpupower-set.c ++++ b/tools/power/cpupower/utils/cpupower-set.c +@@ -18,9 +18,9 @@ + #include "helpers/bitmask.h" + + static struct option set_opts[] = { +- { .name = "perf-bias", .has_arg = optional_argument, .flag = NULL, .val = 'b'}, +- { .name = "sched-mc", .has_arg = optional_argument, .flag = NULL, .val = 'm'}, +- { .name = "sched-smt", .has_arg = optional_argument, .flag = NULL, .val = 's'}, ++ { .name = "perf-bias", .has_arg = required_argument, .flag = NULL, .val = 'b'}, ++ { .name = "sched-mc", .has_arg = required_argument, .flag = NULL, .val = 'm'}, ++ { .name = "sched-smt", .has_arg = required_argument, .flag = NULL, .val = 's'}, + { }, + }; + +-- +1.8.3.1 + |