about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tvix/nix-compat/src/nar/writer/mod.rs23
1 files changed, 11 insertions, 12 deletions
diff --git a/tvix/nix-compat/src/nar/writer/mod.rs b/tvix/nix-compat/src/nar/writer/mod.rs
index f73d323e38..9abc2510d1 100644
--- a/tvix/nix-compat/src/nar/writer/mod.rs
+++ b/tvix/nix-compat/src/nar/writer/mod.rs
@@ -28,6 +28,7 @@
 //! # Ok::<(), std::io::Error>(())
 //! ```
 
+use bstr::ByteSlice;
 use std::io::{
     self, BufRead,
     ErrorKind::{InvalidInput, UnexpectedEof},
@@ -73,11 +74,8 @@ impl<'a, 'w> Node<'a, 'w> {
             "target.len() > {}",
             wire::MAX_TARGET_LEN
         );
-        debug_assert!(
-            !target.contains(&b'\0'),
-            "invalid target characters: {target:?}"
-        );
-        debug_assert!(!target.is_empty(), "empty target");
+        debug_assert!(!target.is_empty(), "target is empty");
+        debug_assert!(!target.contains(&0), "target contains null byte");
 
         self.write(&wire::TOK_SYM)?;
         self.write(&target.len().to_le_bytes())?;
@@ -176,12 +174,11 @@ impl<'a, 'w> Directory<'a, 'w> {
             "name.len() > {}",
             wire::MAX_NAME_LEN
         );
-        debug_assert!(name != b"", "name may not be empty");
-        debug_assert!(name != b".", "invalid name: {name:?}");
-        debug_assert!(name != b"..", "invalid name: {name:?}");
-
-        debug_assert!(!name.contains(&b'/'), "invalid name characters: {name:?}");
-        debug_assert!(!name.contains(&b'\0'), "invalid name characters: {name:?}");
+        debug_assert!(!name.is_empty(), "name is empty");
+        debug_assert!(!name.contains(&0), "name contains null byte");
+        debug_assert!(!name.contains(&b'/'), "name contains {:?}", '/');
+        debug_assert!(name != b".", "name == {:?}", ".");
+        debug_assert!(name != b"..", "name == {:?}", "..");
 
         match self.prev_name {
             None => {
@@ -192,7 +189,9 @@ impl<'a, 'w> Directory<'a, 'w> {
                 {
                     assert!(
                         &**_prev_name < name,
-                        "misordered names: {_prev_name:?} >= {name:?}"
+                        "misordered names: {:?} >= {:?}",
+                        _prev_name.as_bstr(),
+                        name.as_bstr()
                     );
                     _prev_name.clear();
                     _prev_name.extend_from_slice(name);