]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust/dns: fix clippy char_indices_as_byte_indices
authorPhilippe Antoine <pantoine@oisf.net>
Fri, 27 Jun 2025 07:31:24 +0000 (09:31 +0200)
committerPhilippe Antoine <pantoine@oisf.net>
Fri, 27 Jun 2025 07:33:29 +0000 (09:33 +0200)
error: indexing into a string with a character position where a byte index is expected
  --> src/dns/detect.rs:45:39
   |
45 |                 let code: u8 = opcode[i..].parse().map_err(|_| ())?;
   |                                       ^
   |
   = note: a character can take up more than one byte, so they are not interchangeable
note: position comes from the enumerate iterator
  --> src/dns/detect.rs:36:10
   |
36 |     for (i, c) in opcode.chars().enumerate() {
   |          ^                       ^^^^^^^^^^^
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_indices_as_byte_indices
   = note: `#[deny(clippy::char_indices_as_byte_indices)]` on by default
help: consider using `.char_indices()` instead
   |
36 -     for (i, c) in opcode.chars().enumerate() {
36 +     for (i, c) in opcode.char_indices() {

rust/src/dns/detect.rs

index 268a409eac8dfe1847462229fd036e6c699b1ecb..0ee3891983a4730269150e631b282706c0bfc5a7 100644 (file)
@@ -33,7 +33,7 @@ pub struct DetectDnsOpcode {
 /// the details of the error.
 fn parse_opcode(opcode: &str) -> Result<DetectDnsOpcode, ()> {
     let mut negated = false;
-    for (i, c) in opcode.chars().enumerate() {
+    for (i, c) in opcode.char_indices() {
         match c {
             ' ' | '\t' => {
                 continue;