diff --git a/tests/audiomatch.c b/tests/audiomatch.c index bb9deca624..56a60bdecf 100644 --- a/tests/audiomatch.c +++ b/tests/audiomatch.c @@ -82,9 +82,9 @@ int main(int argc, char **argv) { signal = malloc(siglen * sizeof(*signal)); if (fread(data , 1, datlen, f[0]) != datlen) - return 1; + goto read_fail; if (fread(signal, 1, siglen, f[1]) != siglen) - return 1; + goto read_fail; datlen /= 2; siglen /= 2; @@ -111,5 +111,12 @@ int main(int argc, char **argv) { } printf("presig: %d postsig:%d c:%7.4f lenerr:%d\n", bestpos, datlen - siglen - bestpos, bestc / sigamp, datlen - siglen); + free(data); + free(signal); return 0; + +read_fail: + free(data); + free(signal); + return 1; }