projects
/
paraslash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix memory leak in audioc.c.
[paraslash.git]
/
audioc.c
diff --git
a/audioc.c
b/audioc.c
index 73bc2cf36bc0bbd51f43490548c2241e65bf13b0..1baa6c34b310fd48517b6df9bd9384819e6caa8d 100644
(file)
--- a/
audioc.c
+++ b/
audioc.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 2005-201
1
Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-201
2
Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
@@
-9,6
+9,7
@@
#include <regex.h>
#include <sys/types.h>
#include <stdbool.h>
#include <regex.h>
#include <sys/types.h>
#include <stdbool.h>
+#include <signal.h>
#include "audioc.cmdline.h"
#include "para.h"
#include "audioc.cmdline.h"
#include "para.h"
@@
-297,7
+298,9
@@
int main(int argc, char *argv[])
.check_required = 0,
.check_ambiguity = 0
};
.check_required = 0,
.check_ambiguity = 0
};
- if (audioc_cmdline_parser_config_file(cf, &conf, ¶ms)) {
+ ret = audioc_cmdline_parser_config_file(cf, &conf, ¶ms);
+ free(cf);
+ if (ret) {
fprintf(stderr, "parse error in config file\n");
exit(EXIT_FAILURE);
}
fprintf(stderr, "parse error in config file\n");
exit(EXIT_FAILURE);
}
@@
-331,6
+334,9
@@
int main(int argc, char *argv[])
goto out;
bufsize = conf.bufsize_arg;
buf = para_malloc(bufsize);
goto out;
bufsize = conf.bufsize_arg;
buf = para_malloc(bufsize);
+ ret = mark_fd_blocking(STDOUT_FILENO);
+ if (ret < 0)
+ goto out;
do {
size_t n = ret = recv_bin_buffer(fd, buf, bufsize);
if (ret <= 0)
do {
size_t n = ret = recv_bin_buffer(fd, buf, bufsize);
if (ret <= 0)