patch 7.4.1717
Problem: Leaking memory when opening a channel fails.
Solution: Unreference partials in job options.
diff --git a/src/eval.c b/src/eval.c
index e7fbeaa..b4e7166 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10321,9 +10321,9 @@
return;
clear_job_options(&opt);
if (get_job_options(&argvars[1], &opt,
- JO_CB_ALL + JO_TIMEOUT_ALL + JO_MODE_ALL) == FAIL)
- return;
- channel_set_options(channel, &opt);
+ JO_CB_ALL + JO_TIMEOUT_ALL + JO_MODE_ALL) == OK)
+ channel_set_options(channel, &opt);
+ free_job_options(&opt);
}
/*
@@ -14889,9 +14889,9 @@
if (job == NULL)
return;
clear_job_options(&opt);
- if (get_job_options(&argvars[1], &opt, JO_STOPONEXIT + JO_EXIT_CB) == FAIL)
- return;
- job_set_options(job, &opt);
+ if (get_job_options(&argvars[1], &opt, JO_STOPONEXIT + JO_EXIT_CB) == OK)
+ job_set_options(job, &opt);
+ free_job_options(&opt);
}
/*