diff options
author | Marius Halden <marius.h@lden.org> | 2016-10-25 20:05:51 +0200 |
---|---|---|
committer | Marius Halden <marius.h@lden.org> | 2016-10-25 20:05:51 +0200 |
commit | d7b994eccb760a68315fc48b1600f9164282a127 (patch) | |
tree | c2f6a7844dfd48358ff75c41360aa3bca6869133 /batchd.c | |
parent | 1b41c90d89898ecce8646e02c67afc76ae60f665 (diff) | |
download | runq-d7b994eccb760a68315fc48b1600f9164282a127.tar.gz runq-d7b994eccb760a68315fc48b1600f9164282a127.tar.bz2 runq-d7b994eccb760a68315fc48b1600f9164282a127.tar.xz |
Fix resource leak
Diffstat (limited to 'batchd.c')
-rw-r--r-- | batchd.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -67,13 +67,16 @@ process_queue(char *queuedir, int dfd) fd = open(name, O_RDONLY); if (fd == -1) { - goto end; + goto next; } rename(name, work); pid = run_job(queuedir, fd); if (pid == -1) { rename(work, failed); - return; + free(name); + free(work); + free(failed); + break; } for (i = 0; i < MAX_JOBS; i++) { if (jobs[i].pid == -1) { @@ -84,7 +87,7 @@ process_queue(char *queuedir, int dfd) close(fd); cur_jobs++; -end: +next: free(name); free(work); free(failed); |