summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-sound/grip/files/grip-3.3.1-invalid-genre-size.patch')
-rw-r--r--media-sound/grip/files/grip-3.3.1-invalid-genre-size.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/media-sound/grip/files/grip-3.3.1-invalid-genre-size.patch b/media-sound/grip/files/grip-3.3.1-invalid-genre-size.patch
new file mode 100644
index 000000000000..c826fc6e2e80
--- /dev/null
+++ b/media-sound/grip/files/grip-3.3.1-invalid-genre-size.patch
@@ -0,0 +1,30 @@
+http://bugs.gentoo.org/285105
+
+--- grip-3.3.1/src/id3.c
++++ grip-3.3.1/src/id3.c
+@@ -252,8 +252,8 @@
+
+ if ( frames[ i ] ) {
+ char *c_data = NULL;
+- char gen[ 5 ] = "( )";
+- char trk[ 4 ] = " ";
++ char gen[ 6 ] = "( )"; /* max unsigned char: 255 */
++ char trk[ 3 ] = " "; /* max CDDA tracks: 99 */
+
+ switch( frameids[ i ] ) {
+ case ID3FID_TITLE:
+@@ -278,12 +278,12 @@
+
+ case ID3FID_CONTENTTYPE:
+ c_data = gen;
+- sprintf( gen, "(%d)", genre ); /* XXX */
++ snprintf( gen, 6, "(%d)", genre );
+ break;
+
+ case ID3FID_TRACKNUM:
+ c_data = trk;
+- sprintf( trk, "%d", tracknum ); /* XXX */
++ snprintf( trk, 3, "%d", tracknum );
+ break;
+
+ default: