소스 검색

aliases: strip NULL byte before returning the strings

Resolving aliases doesn't quite work as it should right now, because the
strings contain trailing NULL bytes that don't match the node names. So
ensure that those NULL bytes are stripped.
Ard Biesheuvel 3 년 전
부모
커밋
a5ae918841
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      src/standard_nodes.rs

+ 2 - 2
src/standard_nodes.rs

@@ -97,7 +97,7 @@ impl<'b, 'a: 'b> Aliases<'b, 'a> {
         self.node
             .properties()
             .find(|p| p.name == alias)
-            .and_then(|p| core::str::from_utf8(p.value).ok())
+            .and_then(|p| core::str::from_utf8(&p.value[..p.value.len() - 1]).ok())
     }
 
     /// Attempt to find the node specified by the given alias
@@ -107,7 +107,7 @@ impl<'b, 'a: 'b> Aliases<'b, 'a> {
 
     /// Returns an iterator over all of the available aliases
     pub fn all(self) -> impl Iterator<Item = (&'a str, &'a str)> + 'b {
-        self.node.properties().filter_map(|p| Some((p.name, core::str::from_utf8(p.value).ok()?)))
+        self.node.properties().filter_map(|p| Some((p.name, core::str::from_utf8(&p.value[..p.value.len() - 1]).ok()?)))
     }
 }