From: Orestis Floros Date: Sat, 9 Dec 2017 17:50:43 +0000 (+0200) Subject: Fix v3 to v4 crash with a variable with longer name than value X-Git-Tag: 4.15~29^2~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ed22785909387809a706f56ccc871cb820bf9c03;p=i3%2Fi3 Fix v3 to v4 crash with a variable with longer name than value --- diff --git a/src/config_parser.c b/src/config_parser.c index 4e66c911..a27cfc5f 100644 --- a/src/config_parser.c +++ b/src/config_parser.c @@ -1065,7 +1065,7 @@ bool parse_file(const char *f, bool use_nagbar) { int version = detect_version(buf); if (version == 3) { /* We need to convert this v3 configuration */ - char *converted = migrate_config(new, stbuf.st_size); + char *converted = migrate_config(new, strlen(new)); if (converted != NULL) { ELOG("\n"); ELOG("****************************************************************\n"); diff --git a/testcases/t/183-config-variables.t b/testcases/t/183-config-variables.t index 4b225214..d135ed59 100644 --- a/testcases/t/183-config-variables.t +++ b/testcases/t/183-config-variables.t @@ -95,7 +95,19 @@ EOT is(launch_get_border($config), 'none', 'no border'); +##################################################################### +# test that variables with longer name than value don't crash i3 with +# v3 to v4 conversion. +# See: #3076 +##################################################################### + +$config = <<'EOT'; +set $var a +EOT +my $pid = launch_with_config($config); +does_i3_live; +exit_gracefully($pid); done_testing;