|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2015-01-01 09:49 UTC] bugreports at internot dot info
Description:
------------
I'm not 100% sure of this one, but perhaps it should be looked at:
5271 UnsetAddrList uslist;
If this is false:
5318 if (scan_env.num_call > 0) {
uslist will never be set, which leads to uninitalized pointer reads.
5395 r = unset_addr_list_fix(&uslist, reg);
5412 unset_addr_list_end(&uslist);
5431 unset_addr_list_end(&uslist);
I don't know if it's possible for this to occur, but my belief is that it is.
Thanks,
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Nov 07 03:00:01 2025 UTC |
Hi, Sorry about the lack of filename. If you think it's not possible that the code can be executed, then that's good enough for me. The idea was that everything goes down the true branch, until: 5286 if (r != 0) goto end; which is false... 5301 if (r != 0) goto err; which is false 5305 if (scan_env.num_named > 0 && which is false 5318 if (scan_env.num_call > 0) { which is false 5336 if (r != 0) goto err_unset; also false 5345 if (IS_FIND_CONDITION(reg->options)) this is true 5353 if (scan_env.backrefed_mem == 0 true 5360 if (scan_env.has_recursion != 0) { true and then finally.. 5382 if (r != 0) goto err_unset; which would jump to: 5428 err_unset: 5429#ifdef USE_SUBEXP_CALL 5430 if (scan_env.num_call > 0) { 5431 unset_addr_list_end(&uslist); 5432 } Thanks,