X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=scrotwm.c;h=0c339a2c0872d56a2988c840b598e04e0ce28a70;hb=1bc1f62c7a0ed3edf41faf0cec49cfad2db794b0;hp=cb56f65c1452d0ea42267934086339a4202dab47;hpb=71fb53730971ed9ea0769101b747fe8c77bbff69;p=spectrwm.git diff --git a/scrotwm.c b/scrotwm.c index cb56f65..0c339a2 100644 --- a/scrotwm.c +++ b/scrotwm.c @@ -5400,7 +5400,7 @@ conf_load(char *filename, int keymapping) if (wordlen == 0) { warnx("%s: line %zd: no option found", filename, lineno); - return (1); + goto out; } optind = -1; for (i = 0; i < LENGTH(configopt); i++) { @@ -5414,12 +5414,12 @@ conf_load(char *filename, int keymapping) if (optind == -1) { warnx("%s: line %zd: unknown option %.*s", filename, lineno, wordlen, cp); - return (1); + goto out; } if (keymapping && strcmp(opt->optname, "bind")) { warnx("%s: line %zd: invalid option %.*s", filename, lineno, wordlen, cp); - return (1); + goto out; } cp += wordlen; cp += strspn(cp, " \t\n"); /* eat whitespace */ @@ -5432,7 +5432,7 @@ conf_load(char *filename, int keymapping) if (wordlen == 0) { warnx("%s: line %zd: syntax error", filename, lineno); - return (1); + goto out; } asprintf(&optsub, "%.*s", wordlen, cp); } @@ -5459,6 +5459,12 @@ conf_load(char *filename, int keymapping) DNPRINTF(SWM_D_CONF, "conf_load end\n"); return (0); + +out: + free(line); + fclose(config); + + return (1); } void