diff --git a/rustysynth/src/generator.rs b/rustysynth/src/generator.rs index ef83454..33b7487 100644 --- a/rustysynth/src/generator.rs +++ b/rustysynth/src/generator.rs @@ -26,7 +26,7 @@ impl Generator { reader: &mut R, size: usize, ) -> Result, SoundFontError> { - if size % 4 != 0 { + if size == 0 || size % 4 != 0 { return Err(SoundFontError::InvalidGeneratorList); } diff --git a/rustysynth/src/sample_header.rs b/rustysynth/src/sample_header.rs index 5890d8e..e5092c2 100644 --- a/rustysynth/src/sample_header.rs +++ b/rustysynth/src/sample_header.rs @@ -51,7 +51,7 @@ impl SampleHeader { reader: &mut R, size: usize, ) -> Result, SoundFontError> { - if size % 46 != 0 { + if size == 0 || size % 46 != 0 { return Err(SoundFontError::InvalidSampleHeaderList); } diff --git a/rustysynth/src/zone_info.rs b/rustysynth/src/zone_info.rs index 40878ea..76579d6 100644 --- a/rustysynth/src/zone_info.rs +++ b/rustysynth/src/zone_info.rs @@ -28,7 +28,7 @@ impl ZoneInfo { reader: &mut R, size: usize, ) -> Result, SoundFontError> { - if size % 4 != 0 { + if size == 0 || size % 4 != 0 { return Err(SoundFontError::InvalidZoneList); }