From 4c3c72b666c7db82975423d0ccdf8f7e4bdfada9 Mon Sep 17 00:00:00 2001 From: ankit Date: Fri, 6 Jun 2025 16:25:49 +0530 Subject: [PATCH] fix: make keyword_token safe by validating UTF-8 input --- vendored/sqlite3-parser/src/dialect/mod.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/vendored/sqlite3-parser/src/dialect/mod.rs b/vendored/sqlite3-parser/src/dialect/mod.rs index 35dca889e..4902378f5 100644 --- a/vendored/sqlite3-parser/src/dialect/mod.rs +++ b/vendored/sqlite3-parser/src/dialect/mod.rs @@ -46,9 +46,8 @@ pub(crate) const MAX_KEYWORD_LEN: usize = 17; /// Check if `word` is a keyword pub fn keyword_token(word: &[u8]) -> Option { - KEYWORDS - .get(UncasedStr::new(unsafe { str::from_utf8_unchecked(word) })) - .copied() + let s = std::str::from_utf8(word).ok()?; + KEYWORDS.get(UncasedStr::new(s)).cloned() } pub(crate) fn is_identifier(name: &str) -> bool {