Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0884f53 authored by Greg Kaiser's avatar Greg Kaiser
Browse files

amrnbdec_test: Fix resource leaks in error cases

These leaks aren't really consequential since this is a standalone
test.  But by putting in simple fixes for these, we reduce the
noise when using static analysis to find leaks in Android code.

Test: TreeHugger
Change-Id: Ieccf3b8ec49b4da2b031c7a407d69d64c8d7fa00
parent 98001b1b
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -67,6 +67,7 @@ int main(int argc, char *argv[]) {
    int bytesRead = fread(header, 1, kFileHeaderSize, fpInput);
    int bytesRead = fread(header, 1, kFileHeaderSize, fpInput);
    if (bytesRead != kFileHeaderSize || memcmp(header, "#!AMR\n", kFileHeaderSize)) {
    if (bytesRead != kFileHeaderSize || memcmp(header, "#!AMR\n", kFileHeaderSize)) {
        fprintf(stderr, "Invalid AMR-NB file\n");
        fprintf(stderr, "Invalid AMR-NB file\n");
        fclose(fpInput);
        return 1;
        return 1;
    }
    }


@@ -79,6 +80,7 @@ int main(int argc, char *argv[]) {
    SNDFILE *handle = sf_open(argv[2], SFM_WRITE, &sfInfo);
    SNDFILE *handle = sf_open(argv[2], SFM_WRITE, &sfInfo);
    if(!handle){
    if(!handle){
        fprintf(stderr, "Could not create %s\n", argv[2]);
        fprintf(stderr, "Could not create %s\n", argv[2]);
        fclose(fpInput);
        return 1;
        return 1;
    }
    }


@@ -87,6 +89,8 @@ int main(int argc, char *argv[]) {
    int err = GSMInitDecode(&amrHandle, (Word8*)"AMRNBDecoder");
    int err = GSMInitDecode(&amrHandle, (Word8*)"AMRNBDecoder");
    if(err != 0){
    if(err != 0){
        fprintf(stderr, "Error creating AMR-NB decoder instance\n");
        fprintf(stderr, "Error creating AMR-NB decoder instance\n");
        fclose(fpInput);
        sf_close(handle);
        return 1;
        return 1;
    }
    }