mirror of
https://github.com/containers/podman.git
synced 2025-12-01 18:49:18 +08:00
Fix SQLite volume lookup queries matching too liberally
Specifically, this does two things: 1. 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 as `podman rm ABC123` but I don't think anyone was manually entering uppercase SHA256 hash IDs so it shouldn't matter. 2. Escape the _ and % characters in volume lookup queries. These are SQLite wildcards, and meant that `podman volume rm test_1` would also match `podman 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 technically `podman volume rm abc_123` probably works and removes containers with an ID matching that pattern... I don't think that matters though. Fixes #26168 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
This commit is contained in:
@@ -114,4 +114,14 @@ var _ = Describe("Podman volume rm", func() {
|
||||
Expect(session).Should(ExitCleanly())
|
||||
Expect(len(session.OutputToStringArray())).To(BeNumerically(">=", 2))
|
||||
})
|
||||
|
||||
It("podman volume rm by unique partial name - case & underscore insensitive", func() {
|
||||
volNames := []string{"test_volume", "test-volume", "test", "Test"}
|
||||
for _, name := range volNames {
|
||||
podmanTest.PodmanExitCleanly("volume", "create", name)
|
||||
}
|
||||
|
||||
podmanTest.PodmanExitCleanly("volume", "rm", volNames[0])
|
||||
podmanTest.PodmanExitCleanly("volume", "rm", volNames[2])
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user