From a2aab30fc918ca1a61ef5a11fc0bd6a4aebc6306 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20=C5=A0tetiar?= Date: Tue, 14 Jan 2020 08:55:34 +0100 Subject: [PATCH] jshn: prefer snprintf usage MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Better safe than sorry. Reviewed-by: Jo-Philipp Wich Signed-off-by: Petr Å tetiar --- jshn.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/jshn.c b/jshn.c index 0940b5e..1b685e5 100644 --- a/jshn.c +++ b/jshn.c @@ -68,7 +68,7 @@ static int add_json_array(struct array_list *a) int ret; for (i = 0, len = array_list_length(a); i < len; i++) { - sprintf(seq, "%d", i); + snprintf(seq, sizeof(seq), "%d", i); ret = add_json_element(seq, array_list_get_idx(a, i)); if (ret) return ret; @@ -200,25 +200,27 @@ static char *getenv_avl(const char *key) static char *get_keys(const char *prefix) { char *keys; + size_t len = var_prefix_len + strlen(prefix) + sizeof("K_") + 1; - keys = alloca(var_prefix_len + strlen(prefix) + sizeof("K_") + 1); - sprintf(keys, "%sK_%s", var_prefix, prefix); + keys = alloca(len); + snprintf(keys, len, "%sK_%s", var_prefix, prefix); return getenv_avl(keys); } static void get_var(const char *prefix, const char **name, char **var, char **type) { char *tmpname, *varname; + size_t len = var_prefix_len + strlen(prefix) + 1 + strlen(*name) + 1 + sizeof("T_"); - tmpname = alloca(var_prefix_len + strlen(prefix) + 1 + strlen(*name) + 1 + sizeof("T_")); + tmpname = alloca(len); - sprintf(tmpname, "%s%s_%s", var_prefix, prefix, *name); + snprintf(tmpname, len, "%s%s_%s", var_prefix, prefix, *name); *var = getenv_avl(tmpname); - sprintf(tmpname, "%sT_%s_%s", var_prefix, prefix, *name); + snprintf(tmpname, len, "%sT_%s_%s", var_prefix, prefix, *name); *type = getenv_avl(tmpname); - sprintf(tmpname, "%sN_%s_%s", var_prefix, prefix, *name); + snprintf(tmpname, len, "%sN_%s_%s", var_prefix, prefix, *name); varname = getenv_avl(tmpname); if (varname) *name = varname; -- 2.25.1