diff options
author | Swen Schillig <swen@linux.ibm.com> | 2019-08-19 13:09:25 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2019-08-22 01:41:37 +0000 |
commit | a7383889282d3b92a9c2eaded85a5ba20e828134 (patch) | |
tree | a0080169acb851692304fe5b8c290ddf9be10e0f /lib/texpect/texpect.c | |
parent | 5e1c7c084c85ea51f6843b95defee12ba6a8f0a0 (diff) | |
download | samba-a7383889282d3b92a9c2eaded85a5ba20e828134.tar.gz |
lib: free popt context in texpect
If done with popt context it should be free'd.
Signed-off-by: Swen Schillig <swen@linux.ibm.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Ralph Böhme <slow@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Thu Aug 22 01:41:37 UTC 2019 on sn-devel-184
Diffstat (limited to 'lib/texpect/texpect.c')
-rw-r--r-- | lib/texpect/texpect.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/texpect/texpect.c b/lib/texpect/texpect.c index 8ced5638c67..32b2fded410 100644 --- a/lib/texpect/texpect.c +++ b/lib/texpect/texpect.c @@ -401,7 +401,7 @@ int main(int argc, const char **argv) { int optidx = 0; pid_t pid; - poptContext pc; + poptContext pc = NULL; const char *instruction_file; const char **args; const char *program; @@ -415,7 +415,7 @@ int main(int argc, const char **argv) if (argc == 1) { poptPrintHelp(pc, stderr, 0); - return 1; + goto out; } while ((optidx = poptGetNextOpt(pc)) != -1) { @@ -426,7 +426,7 @@ int main(int argc, const char **argv) args = poptGetArgs(pc); if (args == NULL) { poptPrintHelp(pc, stderr, 0); - return 1; + goto out; } program_args = (char * const *)discard_const_p(char *, args); @@ -453,7 +453,7 @@ int main(int argc, const char **argv) err(1, "Failed to fork"); /* Never reached */ - return 1; + goto out; case 0: if(setsid()<0) @@ -470,7 +470,7 @@ int main(int argc, const char **argv) err(1, "Failed to exec: %s", program); /* Never reached */ - return 1; + goto out; default: close(slave); { @@ -483,9 +483,13 @@ int main(int argc, const char **argv) sigaction(SIGALRM, &sa, NULL); } + poptFreeContext(pc); return eval_parent(pid); } /* Never reached */ + +out: + poptFreeContext(pc); return 1; } |