Fix potential OOB read in zend_dirname() on Windows #16995
Closed
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.
Only on Windows
IS_SLASH_P()
may read the previous byte, and so may in unlikely cases read one byte out of bounds. SinceIS_SLASH_P()
is in a public header (albeit not likely to be used by external extensions or SAPIs), we introduceIS_SLASH_P_EX()
which accepts a second argument to prevent that OOB read.It should be noted that the PHP userland function
dirname()
is not affected by this issue, since it does not callzend_dirname()
on Windows.