Skip to content

[5.1] Catch block for generic TUF exceptions#43477

Merged
LadySolveig merged 8 commits intojoomla:5.1-devfrom
SniperSister:5.1-tuf-generic-catch
May 20, 2024
Merged

[5.1] Catch block for generic TUF exceptions#43477
LadySolveig merged 8 commits intojoomla:5.1-devfrom
SniperSister:5.1-tuf-generic-catch

Conversation

@SniperSister
Copy link
Contributor

@SniperSister SniperSister commented May 15, 2024

Pull Request for Issue #43328

Summary of Changes

This PR adds a generic catch block that catches exceptions thrown in the TUF library. So far, we only caught attack-specific exceptions, internal errors, or errors related to metadata syntax error remained uncaught, making the site unusable.

Furthermore, it catches non-tuf exceptions from the HTTP library in our transport and converts them into TUF exceptions to also get them caught in the fetcher library.

Testing Instructions

We have to simulate an exception in the library in order to verify that the patch works. To do so, find the following code block in libraries/src/TUF/TufFetcher.php:

try {
                // Refresh the data if needed, it will be written inside the DB, then we fetch it afterwards and return it to
                // the caller
                $updater->refresh();

                // Persist the data as it was correctly fetched and verified
                $storage->persist();

                return $storage->read('targets');
            } catch (\Exception $e) {

and replace it with

try {
               throw new Tuf\Exception\TufException("Test TUF exception");

                // Refresh the data if needed, it will be written inside the DB, then we fetch it afterwards and return it to
                // the caller
                $updater->refresh();

                // Persist the data as it was correctly fetched and verified
                $storage->persist();

                return $storage->read('targets');
            } catch (\Exception $e) {

Actual result BEFORE applying this Pull Request

Unhandled exception.

Expected result AFTER applying this Pull Request

Proper system message shown, system remains usable.

Link to documentations

Please select:

  • Documentation link for docs.joomla.org:

  • [x ] No documentation changes for docs.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • [x ] No documentation changes for manual.joomla.org needed

Co-authored-by: Brian Teeman <brian@teeman.net>
@LadySolveig LadySolveig added this to the Joomla! 5.1.1 milestone May 15, 2024
@SniperSister
Copy link
Contributor Author

For the record: a user from the german forum has tested the patch and it solved a http-transport related issue, see: https://forum.joomla.de/thread/20986-failed-to-connect-to-update-joomla-org-port-443/?postID=154136#post154136

@dautrich
Copy link

I have tested this item ✅ successfully on fa179de


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/43477.

@LadySolveig LadySolveig merged commit e46f075 into joomla:5.1-dev May 20, 2024
@LadySolveig
Copy link
Contributor

Thank you @SniperSister and also for testing and review @dautrich @brianteeman @Fedik

Kostelano added a commit to JPathRu/localisation that referenced this pull request May 25, 2024
joomla/joomla-cms#43249 - (только для en-GB)
joomla/joomla-cms#43454 +
joomla/joomla-cms#43414 - (только для en-GB)
joomla/joomla-cms#43401 - (только для др. пакетов)
joomla/joomla-cms#43251 +
joomla/joomla-cms#43481 +
joomla/joomla-cms#43483 - (только для др. пакетов)
joomla/joomla-cms#43477 +
joomla/joomla-cms#43435 +
Kostelano added a commit to Joomla-Ukraine/uk-UA that referenced this pull request Jun 3, 2024
joomla/joomla-cms#43249 - (тільки для en-GB)
joomla/joomla-cms#43454 +
joomla/joomla-cms#43414 - (тільки для en-GB)
joomla/joomla-cms#43401 - (тільки для ін. пакетів)
joomla/joomla-cms#43251 +
joomla/joomla-cms#43481 +
joomla/joomla-cms#43483 - (тільки для ін. пакетів)
joomla/joomla-cms#43477 +
joomla/joomla-cms#43435 +
та інші виправлення
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Language Change This is for Translators

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants