-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix/crash corrupted iso #154
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
XADISO9660Parser.m
Outdated
} | ||
|
||
nextoffset = blockLE * 2048 + offsetLE; | ||
nextlength = length; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't nextLength
be lengthLE
? or lengthBE
?
this should be probably be nextLength = lengthBE
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@r-fogash can you look into it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you are right, Xcode "forgot" to rename the variable in line 674 in the second commit. Fixed
🔥 nice |
What
Impacted Areas
Details
Let's open an ISO image file with malformed CE SUSP section and view the memory of that section
Lets read the SUSP, IEEE P1281 standard which says:
ISO 9660:1988 Format section 7.1.1:
ISO 9660:1988 Format section 7.3.3:
Lets check it with our memory
43 45 1C 01 00 00 00 BF 00 00 00 4D 00 00 00 4D DB 29 00 00
[1] (43, 45) - Correct
[2] (1C) - Correct
[3] (01) - Correct
[4] (00 00 00 BF 00 00 00 4D) Not correct, because this field is
Both byte order
(see above), so 0xBF000000 should be equal to 0x0000004D[5] (00 00 00 4D DB 29 00 00) Not correct, because this field is
Both byte order
(see above), so 0x4D000000 should be equal to 0xDB290000