From 8de1bc6cbd3e09e2406c323f4c47c6c5b61419f4 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Mon, 22 Jun 2020 01:45:40 +0300 Subject: [PATCH] sql: fix potential panic in maybe_add_file When maybe_add_file was called with "$BLOBDIR" it tried to remove 9 bytes from the string, while it only contains 8. --- src/sql.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sql.rs b/src/sql.rs index a0c26e6e9..ec90a38cf 100644 --- a/src/sql.rs +++ b/src/sql.rs @@ -593,7 +593,7 @@ fn is_file_in_use(files_in_use: &HashSet, namespc_opt: Option<&str>, nam } fn maybe_add_file(files_in_use: &mut HashSet, file: impl AsRef) { - if !file.as_ref().starts_with("$BLOBDIR") { + if !file.as_ref().starts_with("$BLOBDIR/") { return; } @@ -1312,10 +1312,12 @@ mod test { maybe_add_file(&mut files, "$BLOBDIR/hello"); maybe_add_file(&mut files, "$BLOBDIR/world.txt"); maybe_add_file(&mut files, "world2.txt"); + maybe_add_file(&mut files, "$BLOBDIR"); assert!(files.contains("hello")); assert!(files.contains("world.txt")); assert!(!files.contains("world2.txt")); + assert!(!files.contains("$BLOBDIR")); } #[test]