diff --git a/src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java b/src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java
index e13bae6ce92..6f5a4bbf3c9 100644
--- a/src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java
+++ b/src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java
@@ -392,6 +392,10 @@ final class SMFParser {
                         // meta
                         int metaType = readUnsigned();
                         int metaLength = (int) readVarInt();
+                        if (metaLength < 0) {
+                            throw new InvalidMidiDataException("length out of bounds: "
+                                    + metaLength);
+                        }
                         final byte[] metaData;
                         try {
                             metaData = new byte[metaLength];
diff --git a/src/java.desktop/share/classes/com/sun/media/sound/WaveFloatFileReader.java b/src/java.desktop/share/classes/com/sun/media/sound/WaveFloatFileReader.java
index 2c3be1507fc..f8365f71780 100644
--- a/src/java.desktop/share/classes/com/sun/media/sound/WaveFloatFileReader.java
+++ b/src/java.desktop/share/classes/com/sun/media/sound/WaveFloatFileReader.java
@@ -73,6 +73,10 @@ public final class WaveFloatFileReader extends SunFileReader {
                 samplerate = chunk.readUnsignedInt();
                 /* framerate = */chunk.readUnsignedInt();
                 framesize = chunk.readUnsignedShort();
+                if (framesize == 0) {
+                    throw new UnsupportedAudioFileException(
+                            "Can not process audio format with 0 frame size");
+                }
                 bits = chunk.readUnsignedShort();
             }
             if (chunk.getFormat().equals("data")) {