Skip to content

catch stoul exceptions in CanonMakerNote print0x000a/print0x000c#9320

Open
netliomax25-code wants to merge 1 commit into
Exiv2:mainfrom
netliomax25-code:canon-print-stoul-catch
Open

catch stoul exceptions in CanonMakerNote print0x000a/print0x000c#9320
netliomax25-code wants to merge 1 commit into
Exiv2:mainfrom
netliomax25-code:canon-print-stoul-catch

Conversation

@netliomax25-code
Copy link
Copy Markdown

print0x000a and print0x000c call std::stoul(value.toString()), but the stored type of Canon tags 0x000a and 0x000c is not enforced during parsing, so a crafted makernote can hand them a non-numeric ASCII value. stoul then throws std::invalid_argument, which Exifdatum::write does not catch (it only guards std::out_of_range), so it escapes during -pa printing. Catch both and fall back to the raw value, like the existing path in print0x000c.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant