Fix #8886: Don't try to resolve folders within tars named '.' #8893
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.
Motivation / Problem
Through mildly nefarious means, you can create a tar that has a "root folder" named
.
. In standard file systems, this is the current directory. But OTTD (without the tar filename to realise it's supposed to be within a tarfile, falls back to the standard directory resolving, which includes the the current directory, and can cause OTTD to try to load text files from that directory, rather than from within the tar#8006 is beneficial here too, though no longer required for #8886
Description
Resolve the
.
(by ignoring it). This causes OTTD to not be able to find the grf/content item, which means it can't try to access textfiles in the wrong directory.Limitations
Might want to add some sort of debug output for when this occurs? It's currently very unclear why a GRF has been silently rejected.
It should be noted that this cannot be "exploited" by bananas-downloaded content, as it would be rejected at that level.
Checklist for review
Some things are not automated, and forgotten often. This list is a reminder for the reviewers.