lkml.org 
[lkml]   [2014]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 094/144] cpupower: Fix segfault due to incorrect getopt_long arugments
    Date
    3.12-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Josh Boyer <jwboyer@redhat.com>

    commit f447ef4a56dee4b68a91460bcdfe06b5011085f2 upstream.

    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

    Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
    Cc: Dominik Brodowski <linux@dominikbrodowski.net>
    Cc: Thomas Renninger <trenn@suse.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    tools/power/cpupower/utils/cpupower-set.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- 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'},
    { },
    };




    \
     
     \ /
      Last update: 2014-01-07 02:41    [W:4.056 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site