Commit 19d878d7115ba82672dd4f1c840961188f79324d

Sam Lantinga 2014-07-08T00:42:14

Skip JUNK chunks in wave files

diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c
index 46fdb81..988e4b7 100644
--- a/src/audio/SDL_wave.c
+++ b/src/audio/SDL_wave.c
@@ -460,7 +460,7 @@ SDL_LoadWAV_RW(SDL_RWops * src, int freesrc,
         }
         /* 2 Uint32's for chunk header+len, plus the lenread */
         headerDiff += lenread + 2 * sizeof(Uint32);
-    } while ((chunk.magic == FACT) || (chunk.magic == LIST) || (chunk.magic == BEXT));
+    } while ((chunk.magic == FACT) || (chunk.magic == LIST) || (chunk.magic == BEXT) || (chunk.magic == JUNK));
 
     /* Decode the audio data format */
     format = (WaveFMT *) chunk.data;
diff --git a/src/audio/SDL_wave.h b/src/audio/SDL_wave.h
index d136995..6c20c60 100644
--- a/src/audio/SDL_wave.h
+++ b/src/audio/SDL_wave.h
@@ -30,6 +30,7 @@
 #define FACT            0x74636166      /* "fact" */
 #define LIST            0x5453494c      /* "LIST" */
 #define BEXT            0x74786562      /* "bext" */
+#define JUNK            0x4B4E554A      /* "JUNK" */
 #define FMT             0x20746D66      /* "fmt " */
 #define DATA            0x61746164      /* "data" */
 #define PCM_CODE        0x0001