diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-07-05 08:20:49 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-07-05 08:20:49 +0000 |
commit | e07c5f897e8da88959c93a9d98f1b441da649eb6 (patch) | |
tree | 157aabd619cf8b1a4c7c8cc857b4561eadee2584 | |
parent | a13d2bceaea04cb7c16b4cfbeb06f12f8e90c6c9 (diff) |
Fix some memory leaks found by the static analyzer. Thanks to John Smith for running it over Clang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159732 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/c-index-test/c-index-test.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c index e16be7d185..b3b5b8447f 100644 --- a/tools/c-index-test/c-index-test.c +++ b/tools/c-index-test/c-index-test.c @@ -157,6 +157,7 @@ int parse_remapped_files(int argc, const char **argv, int start_arg, (feof(to_file) ? "EOF" : "error"), semi + 1); fclose(to_file); free_remapped_files(*unsaved_files, i); + free(contents); *unsaved_files = 0; *num_unsaved_files = 0; return -1; @@ -2281,8 +2282,10 @@ int perform_token_annotation(int argc, const char **argv) { &second_line, &second_column))) return errorCode; - if (parse_remapped_files(argc, argv, 2, &unsaved_files, &num_unsaved_files)) + if (parse_remapped_files(argc, argv, 2, &unsaved_files, &num_unsaved_files)) { + free(filename); return -1; + } CIdx = clang_createIndex(0, 1); TU = clang_parseTranslationUnit(CIdx, argv[argc - 1], @@ -2300,8 +2303,10 @@ int perform_token_annotation(int argc, const char **argv) { } errorCode = 0; - if (checkForErrors(TU) != 0) - return -1; + if (checkForErrors(TU) != 0) { + errorCode = -1; + goto teardown; + } if (getenv("CINDEXTEST_EDITING")) { for (i = 0; i < 5; ++i) { |