diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-07-14 21:03:06 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-07-14 21:03:06 +0100 |
commit | 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch) | |
tree | 7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /app-cdr/bin2iso/files | |
parent | 30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff) |
gentoo resync : 14.07.2018
Diffstat (limited to 'app-cdr/bin2iso/files')
-rw-r--r-- | app-cdr/bin2iso/files/bin2iso-19b-sanity-checks.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app-cdr/bin2iso/files/bin2iso-19b-sanity-checks.patch b/app-cdr/bin2iso/files/bin2iso-19b-sanity-checks.patch new file mode 100644 index 000000000000..43e3f4aae3b4 --- /dev/null +++ b/app-cdr/bin2iso/files/bin2iso-19b-sanity-checks.patch @@ -0,0 +1,30 @@ +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);
|