Fix segfault on mysqlnd result set error#1858
Closed
soda0289 wants to merge 2 commits intophp:masterfrom
Closed
Conversation
This patch fixes bug# 71863 which caused a segfault when the result set contained an error. This occurs becuase the buffered result set does not contain callbacks in its mysqlnd error_info struct and would fail on a null pointer when called with the macro COPY_CLIENT_ERROR. The fix simply copies the error info struct from the row_packet into the buffered result set, as was done before.
Author
|
@soda0289 there is the test code in the ticket, could you please add it as a phpt to the PR? Thanks. |
1646ce3 to
c624d70
Compare
This test ensures there is no segfault when there is an error on an EXPLAIN SELECT query.
c624d70 to
f500e78
Compare
Author
|
I have added a test that reproduces the segmentation fault. This error only occurs on master and not on PHP-7.0.5 or PHP-7.0.6. |
Author
|
I believe the bug was introduced in this commit 4bb784c. |
Member
|
This has now been fixed via 671d22f in a different way (calling mysqlnd_error_info_init). |
Author
|
@nikic Will this be merged into PHP-7.1 branch? |
Member
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.
This patch fixes bug# 71863 which caused a segfault when the result set
contained an error. This occurs becuase the buffered result set does
not contain callbacks in its mysqlnd error_info struct and would fail
on a null pointer when called with the macro COPY_CLIENT_ERROR.
The fix simply copies the error info struct from the row_packet into
the buffered result set, as was done before.