Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[HttpKernel] Fix possible infinite loop of exceptions#30327

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
nicolas-grekas merged 1 commit intosymfony:3.4fromenumag:patch-32
Feb 22, 2019

Conversation

@enumag
Copy link
Contributor

QA
Branch?3.4
Bug fix?yes
New feature?no
BC breaks?no
Deprecations?no
Tests pass?yes
Fixed tickets
LicenseMIT
Doc PR

I ran into anissue in the enqueue library which copied this part of code from Symfony. I'm now starting to understand what the problem is and it should most likely be fixed in Symfony as well.

I didn't actually run into it in Symfony itself but it seems at least hypothetically possible. Imagine ifhere$e is somehow the same (===) as$exception. The codebelow will then find the last exception in thegetPrevious() chain and assigns$exception as the previous. However in the off chance that$exception is actually$e (the first exception in the chain) then it creates an infinite loop of exceptions which is not good for monolog and exception handlers.

What do you think?

@enumag
Copy link
ContributorAuthor

enumag commentedFeb 21, 2019
edited
Loading

Maybe do-while would be better?

$prev =$e;do {if ($exception ===$wrapper =$prev) {throw$e;}}while ($prev =$wrapper->getPrevious());
DamienHarper reacted with thumbs up emoji

@nicolas-grekasnicolas-grekas added this to the3.4 milestoneFeb 21, 2019
@nicolas-grekas
Copy link
Member

LGTM

@enumag
Copy link
ContributorAuthor

@nicolas-grekas What do you think about the do-while?

@enumagenumag marked this pull request as ready for reviewFebruary 21, 2019 11:48
@enumag
Copy link
ContributorAuthor

Squashed to one commit. Should be ready to merge in my opinion.

@nicolas-grekas
Copy link
Member

Good catch, thanks@enumag.

@nicolas-grekasnicolas-grekas merged commit3447222 intosymfony:3.4Feb 22, 2019
nicolas-grekas added a commit that referenced this pull requestFeb 22, 2019
…mag)This PR was merged into the 3.4 branch.Discussion----------[HttpKernel] Fix possible infinite loop of exceptions| Q             | A| ------------- | ---| Branch?       | 3.4| Bug fix?      | yes| New feature?  | no| BC breaks?    | no| Deprecations? | no| Tests pass?   | yes| Fixed tickets || License       | MIT| Doc PR        |I ran into an [issue](php-enqueue/enqueue-dev#774) in the enqueue library which copied this part of code from Symfony. I'm now starting to understand what the problem is and it should most likely be fixed in Symfony as well.I didn't actually run into it in Symfony itself but it seems at least hypothetically possible. Imagine if [here](https://github.com/symfony/symfony/blob/8c3dc8254a508593aa0637445659e93e39d31dca/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php#L77) `$e` is somehow the same (===) as `$exception`. The code [below](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php#L82-L92) will then find the last exception in the `getPrevious()` chain and assigns `$exception` as the previous. However in the off chance that `$exception` is actually `$e` (the first exception in the chain) then it creates an infinite loop of exceptions which is not good for monolog and exception handlers.What do you think?Commits-------3447222 [HttpKernel] Fix possible infinite loop of exceptions
This was referencedMar 3, 2019
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@nicolas-grekasnicolas-grekasnicolas-grekas approved these changes

Assignees

No one assigned

Projects

None yet

Milestone

3.4

Development

Successfully merging this pull request may close these issues.

3 participants

@enumag@nicolas-grekas@carsonbot

[8]ページ先頭

©2009-2025 Movatter.jp