Fix SQLite volume lookup queries matching too liberally #26217
Merged
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.
Specifically, this does two things:
Turn on case-sensitive LIKE queries. Technically, this is not specific to volumes, as it will also affect container and pod lookups - but there, it only affects IDs. So
podman rm abc123
will not be the same aspodman rm ABC123
but I don't think anyone was manually entering uppercase SHA256 hash IDs so it shouldn't matter.Escape the _ and % characters in volume lookup queries. These are SQLite wildcards, and meant that
podman volume rm test_1
would also matchpodman volume rm testa2
(or any character in place of the underscore). This isn't done with pod and container lookups, but again those just use LIKE for IDs - so technicallypodman volume rm abc_123
probably works and removes containers with an ID matching that pattern... I don't think that matters though.Fixes #26168
Does this PR introduce a user-facing change?