X-Git-Url: https://git.libav.org/?p=libav.git;a=blobdiff_plain;f=tools%2Fqt-faststart.c;h=f48ffc0b5d713b6deb1babd698f8a180a30d8604;hp=6101fae80527f733c6654ce4be8a179697f8e360;hb=e904c51fa16185799094b4d9731488854f6057a9;hpb=d50fc2d07b7bd5ebbc8f8636c1c3245ab3503bb5 diff --git a/tools/qt-faststart.c b/tools/qt-faststart.c index 6101fae805..f48ffc0b5d 100644 --- a/tools/qt-faststart.c +++ b/tools/qt-faststart.c @@ -116,6 +116,7 @@ int main(int argc, char *argv[]) /* keep ftyp atom */ if (atom_type == FTYP_ATOM) { ftyp_atom_size = atom_size; + free(ftyp_atom); ftyp_atom = malloc(ftyp_atom_size); if (!ftyp_atom) { printf ("could not allocate %"PRIu64" byte for ftyp atom\n", @@ -169,6 +170,7 @@ int main(int argc, char *argv[]) if (atom_type != MOOV_ATOM) { printf ("last atom in file was not a moov atom\n"); + free(ftyp_atom); fclose(infile); return 0; } @@ -182,12 +184,14 @@ int main(int argc, char *argv[]) if (!moov_atom) { printf ("could not allocate %"PRIu64" byte for moov atom\n", atom_size); + free(ftyp_atom); fclose(infile); return 1; } if (fread(moov_atom, atom_size, 1, infile) != 1) { perror(argv[1]); free(moov_atom); + free(ftyp_atom); fclose(infile); return 1; } @@ -197,6 +201,7 @@ int main(int argc, char *argv[]) if (BE_32(&moov_atom[12]) == CMOV_ATOM) { printf ("this utility does not support compressed moov atoms yet\n"); free(moov_atom); + free(ftyp_atom); fclose(infile); return 1; } @@ -213,6 +218,7 @@ int main(int argc, char *argv[]) if (i + atom_size - 4 > moov_atom_size) { printf (" bad atom size\n"); free(moov_atom); + free(ftyp_atom); return 1; } offset_count = BE_32(&moov_atom[i + 8]); @@ -231,6 +237,7 @@ int main(int argc, char *argv[]) if (i + atom_size - 4 > moov_atom_size) { printf (" bad atom size\n"); free(moov_atom); + free(ftyp_atom); return 1; } offset_count = BE_32(&moov_atom[i + 8]); @@ -255,6 +262,7 @@ int main(int argc, char *argv[]) if (!infile) { perror(argv[1]); free(moov_atom); + free(ftyp_atom); return 1; } @@ -268,6 +276,7 @@ int main(int argc, char *argv[]) perror(argv[2]); fclose(outfile); free(moov_atom); + free(ftyp_atom); return 1; } @@ -310,7 +319,7 @@ int main(int argc, char *argv[]) fclose(infile); fclose(outfile); free(moov_atom); - free(ftyp_atom); + free(ftyp_atom); return 0; @@ -318,6 +327,6 @@ error_out: fclose(infile); fclose(outfile); free(moov_atom); - free(ftyp_atom); + free(ftyp_atom); return 1; }