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.
gentoo-overlay/app-cdr/bin2iso/files/bin2iso-19b-sanity-checks.p...

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);