@@ -128,13 +128,22 @@ fn obfuscate_redis_cmd<'a>(str: &mut String, cmd: &'a str, mut args: Vec<&'a str
128128 args. clear ( ) ;
129129 args. push ( "?" ) ;
130130 }
131- b"ACL"
132- // Obfuscate all arguments after the subcommand:
131+ b"ACL" | b"GEOHASH" | b"GEOPOS" | b"GEODIST" | b"LPUSH" | b"RPUSH" | b"SREM" | b"ZREM"
132+ | b"SADD"
133+ // Obfuscate all arguments after the first token:
133134 // • ACL SETUSER username on >password ~keys &channels +commands
134135 // • ACL GETUSER username
135136 // • ACL DELUSER username [username ...]
136137 // • ACL LIST
137138 // • ACL WHOAMI
139+ // • GEOHASH key member [member ...]
140+ // • GEOPOS key member [member ...]
141+ // • GEODIST key member1 member2 [unit]
142+ // • LPUSH key value [value ...]
143+ // • RPUSH key value [value ...]
144+ // • SREM key member [member ...]
145+ // • ZREM key member [member ...]
146+ // • SADD key member [member ...]
138147 if args. len ( ) > 1 => {
139148 args[ 1 ] = "?" ;
140149 args. drain ( 2 ..) ;
@@ -177,20 +186,6 @@ fn obfuscate_redis_cmd<'a>(str: &mut String, cmd: &'a str, mut args: Vec<&'a str
177186 // • LINSERT key BEFORE|AFTER pivot value
178187 args = obfuscate_redis_args_n ( args, 3 ) ;
179188 }
180- b"GEOHASH" | b"GEOPOS" | b"GEODIST" | b"LPUSH" | b"RPUSH" | b"SREM" | b"ZREM" | b"SADD"
181- // Obfuscate all arguments after the first one.
182- // • GEOHASH key member [member ...]
183- // • GEOPOS key member [member ...]
184- // • GEODIST key member1 member2 [unit]
185- // • LPUSH key value [value ...]
186- // • RPUSH key value [value ...]
187- // • SREM key member [member ...]
188- // • ZREM key member [member ...]
189- // • SADD key member [member ...]
190- if args. len ( ) > 1 => {
191- args[ 1 ] = "?" ;
192- args. drain ( 2 ..) ;
193- }
194189 b"GEOADD" => {
195190 // Obfuscating every 3rd argument starting from first
196191 // • GEOADD key longitude latitude member [longitude latitude member ...]
@@ -278,9 +273,8 @@ pub fn remove_all_redis_args(redis_cmd: &str) -> String {
278273 let mut obfuscated_cmd = String :: new ( ) ;
279274
280275 // If the redis command is empty, return immediately. Otherwise, store the command token.
281- let cmd = match redis_cmd_iter. next ( ) {
282- Some ( cmd) => cmd,
283- None => return obfuscated_cmd,
276+ let Some ( cmd) = redis_cmd_iter. next ( ) else {
277+ return obfuscated_cmd;
284278 } ;
285279 obfuscated_cmd. push_str ( cmd) ;
286280
0 commit comments