diff options
author | Thomas White <taw@physics.org> | 2012-07-13 18:52:35 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2012-07-13 18:52:35 +0200 |
commit | 57a44a9738308d73ada759b5663c84dc0f535256 (patch) | |
tree | f8449fc4cb9b767cbc978adc1f960cad7bbfe4b2 | |
parent | cc22322a0365213994647b9ba0bc04d0eec04217 (diff) |
More memory leaks and exit paths
-rw-r--r-- | src/indexamajig.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/indexamajig.c b/src/indexamajig.c index f560b7b8..b8e57048 100644 --- a/src/indexamajig.c +++ b/src/indexamajig.c @@ -428,8 +428,6 @@ static void run_work(const struct index_args *iargs, fh = fdopen(filename_pipe, "r"); if ( fh == NULL ) { ERROR("Failed to fdopen() the filename pipe!\n"); - close(filename_pipe); - close(results_pipe); return; } @@ -450,7 +448,7 @@ static void run_work(const struct index_args *iargs, continue; } else { ERROR("Read error!\n"); - return; + break; } } @@ -482,7 +480,6 @@ static void run_work(const struct index_args *iargs, /* close my pipes */ fclose(fh); - close(results_pipe); cleanup_indexing(iargs->ipriv); free(iargs->indm); @@ -1034,6 +1031,7 @@ int main(int argc, char *argv[]) ERROR("Invalid parameters for '--int-radius'\n"); return 1; } + free(intrad); } else { STATUS("WARNING: You did not specify --int-radius.\n"); STATUS("WARNING: I will use the default values, which are" @@ -1272,16 +1270,16 @@ int main(int argc, char *argv[]) for ( j=0; j<n_proc; j++ ) { if ( i != j ) close(stream_pipe_write[j]); } + for ( j=0; j<i-1; j++ ) { + fclose(result_fhs[j]); + close(filename_pipes[j]); + } free(prefix); free(use_this_one_instead); free(filename_pipes); free(result_fhs); fclose(fh); free(pids); - for ( j=0; j<i-1; j++ ) { - fclose(result_fhs[j]); - close(filename_pipes[j]); - } /* Child process gets the 'read' end of the filename * pipe, and the 'write' end of the result pipe. */ |