Skip to content

Commit eec00e2

Browse files
committed
avoid FPE when number of channels is zero. Fix MestreLion#6
1 parent d04aa42 commit eec00e2

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

audio.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -800,7 +800,9 @@ int wav_open(FILE *in, wavegain_opt *opt,
800800
of trying to abstract stuff. */
801801
wav->samplesize = format.samplesize;
802802

803-
if (len)
803+
if (!format.channels)
804+
opt->total_samples_per_channel = 0;
805+
else if (len)
804806
opt->total_samples_per_channel = len/(format.channels*samplesize);
805807
else {
806808
Int64_t pos;

wavegain.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ int get_gain(const char *filename, double *track_peak, double *track_gain,
192192
}
193193

194194
if ((wg_opts->channels != 1) && (wg_opts->channels != 2)) {
195-
fprintf(stderr, " Unsupported number of channels.\n");
195+
fprintf(stderr, " Unsupported number of channels (%d) for %s.\n",
196+
wg_opts->channels, filename);
196197
goto exit;
197198
}
198199

0 commit comments

Comments
 (0)