OSDN Git Service

ucm: parser: Fix snprintf usage
authorHans de Goede <hdegoede@redhat.com>
Tue, 19 Nov 2019 10:48:22 +0000 (11:48 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 19 Nov 2019 11:45:46 +0000 (12:45 +0100)
There is no need to manually 0 terminate the buffer with snprintf,
only strncpy has the very unfortunate behavior of not guaranteeing 0
termination.

Likewise there is no need to substract one from the buffer size of
the buffer passed to snprintf.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/ucm/parser.c

index 319e3c1..305d36c 100644 (file)
@@ -71,7 +71,6 @@ static void configuration_filename2(char *fn, size_t fn_len, int format,
        snprintf(fn, fn_len, "%s/ucm%s/%s/%s%s",
                 snd_config_topdir(), format >= 2 ? "2" : "",
                 dir, file, suffix);
-       fn[fn_len-1] = '\0';
 }
 
 static void configuration_filename(snd_use_case_mgr_t *uc_mgr,
@@ -96,7 +95,6 @@ static void configuration_filename(snd_use_case_mgr_t *uc_mgr,
        }
        if (env) {
                snprintf(fn, fn_len, "%s/%s/%s%s", env, dir, file, suffix);
-               fn[fn_len-1] = '\0';
                return;
        }
 
@@ -1712,11 +1710,10 @@ int uc_mgr_scan_master_configs(const char **_list[])
        struct dirent **namelist;
 
        if (env)
-               snprintf(filename, sizeof(filename)-1, "%s", env);
+               snprintf(filename, sizeof(filename), "%s", env);
        else
-               snprintf(filename, sizeof(filename)-1, "%s/ucm2",
+               snprintf(filename, sizeof(filename), "%s/ucm2",
                         snd_config_topdir());
-       filename[sizeof(filename)-1] = '\0';
 
 #if defined(_GNU_SOURCE) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__sun) && !defined(ANDROID)
 #define SORTFUNC       versionsort