diff -urN sox-12.17.7.orig/src/smp.c sox-12.17.7/src/smp.c
--- sox-12.17.7.orig/src/smp.c 2004-09-27 22:33:09.000000000 -0400
+++ sox-12.17.7/src/smp.c 2005-04-26 16:33:22.000000000 -0400
@@ -25,6 +25,7 @@
#define NAMELEN 30 /* Size of Samplevision name */
#define COMMENTLEN 60 /* Size of Samplevision comment, not shared */
#define MIDI_UNITY 60 /* MIDI note number to play sample at unity */
+#define MARKERLEN 10 /* Size of Marker name */
/* The header preceeding the sample data */
struct smpheader {
@@ -45,7 +46,7 @@
/* Samplevision marker definition structure */
struct marker {
- char name[10]; /* Ascii Marker name */
+ char name[MARKERLEN + 1]; /* Ascii Marker name */
uint32_t position; /* Sample Number, not byte number */
};
@@ -92,11 +93,12 @@
ft->loops[i].count = trailer->loops[i].count;
}
for(i = 0; i < 8; i++) { /* read the 8 markers */
- if (st_read(ft, trailer->markers[i].name, 1, 10) != 10)
+ if (st_read(ft, trailer->markers[i].name, 1, MARKERLEN) != 10)
{
st_fail_errno(ft,ST_EHDR,"EOF in SMP");
return(ST_EOF);
}
+ trailer->markers[i].name[MARKERLEN] = 0;
st_readdw(ft, &(trailer->markers[i].position));
}
st_readb(ft, (unsigned char *)&(trailer->MIDInote));