Repository navigation
Record the image type on ImageData - #341
Open
arpitjain099 wants to merge 1 commit into
Open
arpitjain099 wants to merge 1 commit into
arpitjain099 wants to merge 1 commit into
Conversation
ImageData carries a type field but nothing ever assigned it; the only mention outside the struct is free_ImageData setting it to NULL. shifter_core.c reads it to decide whether allowLocalChroot applies, and with the field always NULL that test short-circuits, so the setting has no effect. parse_ImageData now stores the type it was given, leaving an existing value alone since a caller can pass image->type itself. Signed-off-by: Arpit Jain <arpitjain099@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ImageDatahas atypefield, but nothing writes to it. Grepping->typeacrosssrc/gives one assignment,free_ImageDatasetting it to NULL, andshifterimg.cworking on a different struct.parse_ImageDatatakestypeas an argument, branches on it, and never stores it.shifter_core.creads that field:Since the field is always NULL, the first clause short-circuits and
allowLocalChrootis never consulted. Compiling the realImageData.cand calling the function directly:After the change the same call reports
localand the guard fires.The assignment leaves an existing value alone rather than replacing it, because
setupLocalRootVFSConfigin the test suite passesimage->typeas the argument; freeing it there is a use-after-free two lines later, which AddressSanitizer flagged when I tried that first.I could not run the CppUTest suite, this machine is macOS and the tree needs Linux headers, so the check above is a harness around the real function rather than a suite run.