summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@fedoraproject.org>2013-10-11 08:50:22 -0400
committerJosh Boyer <jwboyer@fedoraproject.org>2013-10-11 08:50:26 -0400
commit7792df6134ef8e9663a326b5e6af49fd7e3b96a4 (patch)
tree4dcac83f621476978343913d141407d95ba2a64e
parent064673999d41faf2c0c7055f61bf522f75beb379 (diff)
downloadkernel-7792df6134ef8e9663a326b5e6af49fd7e3b96a4.tar.gz
kernel-7792df6134ef8e9663a326b5e6af49fd7e3b96a4.tar.xz
kernel-7792df6134ef8e9663a326b5e6af49fd7e3b96a4.zip
Fix segfault in cpupower set (rhbz 1000439)
-rw-r--r--cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch40
-rw-r--r--kernel.spec7
2 files changed, 47 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
+
diff --git a/kernel.spec b/kernel.spec
index 654a74b24..0976a97c2 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -754,6 +754,9 @@ Patch25127: 0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch
#rhbz 993744
Patch25128: dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch
+#rhbz 1000439
+Patch25129: cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -1466,6 +1469,9 @@ ApplyPatch 0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch
#rhbz 993744
ApplyPatch dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch
+#rhbz 1000439
+ApplyPatch cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch
+
# END OF PATCH APPLICATIONS
%endif
@@ -2270,6 +2276,7 @@ fi
# || ||
%changelog
* Fri Oct 11 2013 Josh Boyer <jwboyer@fedoraproject.org> - 3.12.0-0.rc4.git3.1
+- Fix segfault in cpupower set (rhbz 1000439)
- Linux v3.12-rc4-62-g2fe80d3
* Thu Oct 10 2013 Josh Boyer <jwboyer@fedoraproject.org>