You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
903 B
31 lines
903 B
Add more checks to prevent segfaults in ill-formatted files
|
|
|
|
http://bugs.gentoo.org/show_bug.cgi?id=90540
|
|
|
|
--- a/bin2iso19b_linux.c
|
|
+++ b/bin2iso19b_linux.c
|
|
@@ -237,6 +237,10 @@
|
|
// Get the 'mode'
|
|
if (strncmp(&Line[2], "TRACK ", 6)==0)
|
|
{
|
|
+ if (Line[8] < '0' || Line[8] > '9' || Line[9] < '0' || Line[9] > '9') {
|
|
+ printf("Error: Track # is not a 2 digit number\n");
|
|
+ exit(1);
|
|
+ }
|
|
strncpy(track->num, &Line[8], 2); track->num[2] = '\0';
|
|
|
|
track->mode = UNKNOWN;
|
|
@@ -246,7 +250,11 @@
|
|
if(strncmp(&Line[11], "MODE2/2352", 10)==0) track->mode = MODE2_2352;
|
|
if(strncmp(&Line[11], "MODE2/2336", 10)==0) track->mode = MODE2_2336;
|
|
}
|
|
- else return(1);
|
|
+ else
|
|
+ {
|
|
+ printf("Error: 2nd line does not begin with ' TRACK '\n");
|
|
+ exit(1);
|
|
+ }
|
|
|
|
// Set the name
|
|
strcpy(track->name, sBinFilename);
|