Dont' open output file until we're sure the input file is valid

fixes http://code.google.com/p/webp/issues/detail?id=48

Change-Id: I9ce2e500623380ba71ae0e2c8faf80db4568ae50
This commit is contained in:
Pascal Massimino 2011-02-25 12:03:27 -08:00
parent d5bd54c712
commit 0744e8420e

View File

@ -719,6 +719,16 @@ int main(int argc, const char *argv[]) {
goto Error;
}
// Read the input
if (verbose)
StopwatchReadAndReset(&stop_watch);
if (!ReadPicture(in_file, &picture)) goto Error;
if (verbose) {
const double time = StopwatchReadAndReset(&stop_watch);
fprintf(stderr, "Time to read input: %.3fs\n", time);
}
// Open the output
if (out_file) {
out = fopen(out_file, "wb");
if (!out) {
@ -740,14 +750,9 @@ int main(int argc, const char *argv[]) {
}
picture.stats = &stats;
// Compress
if (verbose)
StopwatchReadAndReset(&stop_watch);
if (!ReadPicture(in_file, &picture)) goto Error;
if (verbose) {
const double time = StopwatchReadAndReset(&stop_watch);
fprintf(stderr, "Time to read input: %.3fs\n", time);
StopwatchReadAndReset(&stop_watch);
}
if (crop != 0 && !WebPPictureCrop(&picture, crop_x, crop_y, crop_w, crop_h))
goto Error;
if (picture.extra_info_type > 0) AllocExtraInfo(&picture);
@ -756,6 +761,8 @@ int main(int argc, const char *argv[]) {
const double time = StopwatchReadAndReset(&stop_watch);
fprintf(stderr, "Time to encode picture: %.3fs\n", time);
}
// Write info
if (dump_file) DumpPicture(&picture, dump_file);
if (!quiet) PrintExtraInfo(&picture, short_output);