about summary refs log tree commit diff
path: root/tvix/castore/src/errors.rs
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2024-08-17T19·00+0300
committerclbot <clbot@tvl.fyi>2024-08-18T17·22+0000
commite086c76ee941198c70756e1b7b383edcb3572b4b (patch)
tree58fbfe1eeb992489a2feff0bf9ff8852309cd720 /tvix/castore/src/errors.rs
parent56fa533e438bd367aa5cae6fa505508aced42156 (diff)
refactor(tvix/castore): have SymlinkTarget-specific errors r/8514
Don't use ValidateNodeError, but SymlinkTargetError.

Also, add checks for too long symlink targets.

Change-Id: I4b533325d494232ff9d0b3f4f695f5a1a0a36199
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12230
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/castore/src/errors.rs')
-rw-r--r--tvix/castore/src/errors.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/tvix/castore/src/errors.rs b/tvix/castore/src/errors.rs
index ec59c7734584..3c044d9d79cb 100644
--- a/tvix/castore/src/errors.rs
+++ b/tvix/castore/src/errors.rs
@@ -3,7 +3,10 @@ use thiserror::Error;
 use tokio::task::JoinError;
 use tonic::Status;
 
-use crate::path::{PathComponent, PathComponentError};
+use crate::{
+    path::{PathComponent, PathComponentError},
+    SymlinkTargetError,
+};
 
 /// Errors related to communication with the store.
 #[derive(Debug, Error, PartialEq)]
@@ -22,8 +25,8 @@ pub enum ValidateNodeError {
     #[error("invalid digest length: {0}")]
     InvalidDigestLen(usize),
     /// Invalid symlink target
-    #[error("Invalid symlink target: {}", .0.as_bstr())]
-    InvalidSymlinkTarget(bytes::Bytes),
+    #[error("Invalid symlink target: {0}")]
+    InvalidSymlinkTarget(SymlinkTargetError),
 }
 
 impl From<crate::digests::Error> for ValidateNodeError {