lkml.org 
[lkml]   [2017]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] selftests/powerpc: Use snprintf to construct DSCR sysfs interface paths
    Date
    Currently sprintf is used, and while paths should never exceed
    the size of the buffer it is theoretically possible since
    dirent.d_name is 256 bytes. As a result this trips
    -Wformat-overflow, and since the test is built with -Wall -Werror
    the causes the build to fail. Switch to using snprintf and skip
    any paths which are too long for the filename buffer.

    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    ---
    tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    diff --git a/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c b/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c
    index 17fb1b43c320..1899bd85121f 100644
    --- a/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c
    +++ b/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c
    @@ -53,6 +53,8 @@ static int check_all_cpu_dscr_defaults(unsigned long val)
    }

    while ((dp = readdir(sysfs))) {
    + int len;
    +
    if (!(dp->d_type & DT_DIR))
    continue;
    if (!strcmp(dp->d_name, "cpuidle"))
    @@ -60,7 +62,9 @@ static int check_all_cpu_dscr_defaults(unsigned long val)
    if (!strstr(dp->d_name, "cpu"))
    continue;

    - sprintf(file, "%s%s/dscr", CPU_PATH, dp->d_name);
    + len = snprintf(file, LEN_MAX, "%s%s/dscr", CPU_PATH, dp->d_name);
    + if (len >= LEN_MAX)
    + continue;
    if (access(file, F_OK))
    continue;

    --
    2.14.1
    \
     
     \ /
      Last update: 2017-09-28 15:35    [W:2.405 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site