package flac
tags 340960 + patch
thanks

Attached is flac.diff, which turns the warnings about unexpected EOF
into errors, so that --delete-input-file doesn't delete the input file
if there is something suspicious going on.

I'm not going to NMU this immediately, but I may do that later.

-- 
Fundamental truth #2: Attitude is usually more important than skills.
diff -ru flac-1.1.2/src/flac/encode.c flac-1.1.2.patched/src/flac/encode.c
--- flac-1.1.2/src/flac/encode.c	2005-01-25 04:13:52.000000000 +0000
+++ flac-1.1.2.patched/src/flac/encode.c	2006-01-05 15:50:34.822506736 +0000
@@ -397,8 +397,8 @@
 						return EncoderSession_finish_error(&encoder_session);
 					}
 					else if(feof(infile)) {
-						flac__utils_printf(stderr, 1, "%s: WARNING: unexpected EOF; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned int)encoder_session.total_samples_to_encode, (unsigned int)encoder_session.samples_written);
-						data_bytes= 0;
+						flac__utils_printf(stderr, 1, "%s: ERROR: unexpected EOF; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned int)encoder_session.total_samples_to_encode, (unsigned int)encoder_session.samples_written);
+						return EncoderSession_finish_error(&encoder_session);
 					}
 				}
 				else {
@@ -456,7 +456,8 @@
 							return EncoderSession_finish_error(&encoder_session);
 						}
 						else if(bytes_read != (*options.common.align_reservoir_samples) * bytes_per_frame) {
-							flac__utils_printf(stderr, 1, "%s: WARNING: unexpected EOF; read %u bytes; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned int)bytes_read, (unsigned int)encoder_session.total_samples_to_encode, (unsigned int)encoder_session.samples_written);
+							flac__utils_printf(stderr, 1, "%s: ERROR: unexpected EOF; read %u bytes; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned int)bytes_read, (unsigned int)encoder_session.total_samples_to_encode, (unsigned int)encoder_session.samples_written);
+							return EncoderSession_finish_error(&encoder_session);
 						}
 						else {
 							info_align_carry= *options.common.align_reservoir_samples;
@@ -735,8 +736,8 @@
 						return EncoderSession_finish_error(&encoder_session);
 					}
 					else if(feof(infile)) {
-						flac__utils_printf(stderr, 1, "%s: WARNING: unexpected EOF; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned)encoder_session.total_samples_to_encode, (unsigned)encoder_session.samples_written);
-						data_bytes = 0;
+						flac__utils_printf(stderr, 1, "%s: ERROR: unexpected EOF; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned)encoder_session.total_samples_to_encode, (unsigned)encoder_session.samples_written);
+						return EncoderSession_finish_error(&encoder_session);
 					}
 				}
 				else {
@@ -794,8 +795,8 @@
 							return EncoderSession_finish_error(&encoder_session);
 						}
 						else if(bytes_read != (*options.common.align_reservoir_samples) * bytes_per_wide_sample) {
-							flac__utils_printf(stderr, 1, "%s: WARNING: unexpected EOF; read %u bytes; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned)bytes_read, (unsigned)encoder_session.total_samples_to_encode, (unsigned)encoder_session.samples_written);
-							data_bytes = 0;
+							flac__utils_printf(stderr, 1, "%s: ERROR: unexpected EOF; read %u bytes; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned)bytes_read, (unsigned)encoder_session.total_samples_to_encode, (unsigned)encoder_session.samples_written);
+							return EncoderSession_finish_error(&encoder_session);
 						}
 						else {
 							info_align_carry = *options.common.align_reservoir_samples;
@@ -1046,8 +1047,8 @@
 					return EncoderSession_finish_error(&encoder_session);
 				}
 				else if(feof(infile)) {
-					flac__utils_printf(stderr, 1, "%s: WARNING: unexpected EOF; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned)encoder_session.total_samples_to_encode, (unsigned)encoder_session.samples_written);
-					total_input_bytes_read = max_input_bytes;
+					flac__utils_printf(stderr, 1, "%s: ERROR: unexpected EOF; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned)encoder_session.total_samples_to_encode, (unsigned)encoder_session.samples_written);
+					return EncoderSession_finish_error(&encoder_session);
 				}
 			}
 			else {
@@ -1098,7 +1099,8 @@
 					return EncoderSession_finish_error(&encoder_session);
 				}
 				else if(bytes_read != (*options.common.align_reservoir_samples) * bytes_per_wide_sample) {
-					flac__utils_printf(stderr, 1, "%s: WARNING: unexpected EOF; read %u bytes; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned)bytes_read, (unsigned)encoder_session.total_samples_to_encode, (unsigned)encoder_session.samples_written);
+					flac__utils_printf(stderr, 1, "%s: ERROR: unexpected EOF; read %u bytes; expected %u samples, got %u samples\n", encoder_session.inbasefilename, (unsigned)bytes_read, (unsigned)encoder_session.total_samples_to_encode, (unsigned)encoder_session.samples_written);
+					return EncoderSession_finish_error(&encoder_session);
 				}
 				else {
 					info_align_carry = *options.common.align_reservoir_samples;

Reply via email to