Avoid deadlock in config_save()
Must not exit with nbar.mutex locked. Addresses GitHub issue #201. Signed-off-by: Lars Henriksen <LarsHenriksen@get2net.dk> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
parent
d26164fb72
commit
78a46ac7cb
15
src/config.c
15
src/config.c
@ -633,9 +633,9 @@ static int config_load_cb(const char *key, const char *value, void *dummy)
|
|||||||
int result = config_set_conf(key, value);
|
int result = config_set_conf(key, value);
|
||||||
|
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
WARN_MSG(_("unknown user option: \"%s\""), key);
|
WARN_MSG(_("unknown user option: \"%s\" (ignored)"), key);
|
||||||
} else if (result == 0) {
|
} else if (result == 0) {
|
||||||
WARN_MSG(_("invalid option format: \"%s\""), key);
|
WARN_MSG(_("invalid option format: \"%s\" (ignored)"), key);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -655,12 +655,13 @@ static int config_save_cb(const char *key, const char *value, void *status)
|
|||||||
(struct config_save_status *)status);
|
(struct config_save_status *)status);
|
||||||
|
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
EXIT(_("configuration variable unknown: \"%s\""), key);
|
WARN_MSG(_("unknown user option: \"%s\" (disabled)"), key);
|
||||||
/* NOTREACHED */
|
|
||||||
} else if (result == 0) {
|
} else if (result == 0) {
|
||||||
EXIT(_("wrong configuration variable format for \"%s\""),
|
WARN_MSG(_("invalid option format: \"%s\" (disabled)"), key);
|
||||||
key);
|
}
|
||||||
/* NOTREACHED */
|
if (result <= 0) {
|
||||||
|
fputc('#', ((struct config_save_status *)status)->fp);
|
||||||
|
buf = mem_strdup(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
fputs(key, ((struct config_save_status *)status)->fp);
|
fputs(key, ((struct config_save_status *)status)->fp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user