From: Ingo Bürk Date: Tue, 31 May 2016 20:58:23 +0000 (+0200) Subject: Explicitly terminate fallback in set_from_resource. (#2366) X-Git-Tag: 4.13~65 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=18d6a1bc767680f9ab0b0993b23b4cac6aabf926;p=i3%2Fi3 Explicitly terminate fallback in set_from_resource. (#2366) --- diff --git a/src/config_parser.c b/src/config_parser.c index 5b5e2363..2a884730 100644 --- a/src/config_parser.c +++ b/src/config_parser.c @@ -954,6 +954,14 @@ bool parse_file(const char *f, bool use_nagbar) { char v_key[512]; char fallback[4096]; + /* Ensure that this string is terminated. For example, a user might + * want a variable to be empty if the resource can't be found and + * uses + * set_from_resource $foo i3wm.foo + * Without explicitly terminating the string first, sscanf() will + * leave it uninitialized, causing garbage in the config.*/ + fallback[0] = '\0'; + if (sscanf(value, "%511s %511s %4095[^\n]", v_key, res_name, fallback) < 1) { ELOG("Failed to parse resource specification '%s', skipping it.\n", value); continue;