diff options
author | Florian Klink <flokli@flokli.de> | 2024-07-20T23·24+0200 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2024-07-21T00·06+0000 |
commit | d136f2c8817ee72ff673f65d7f882d5918ed366a (patch) | |
tree | fc682012b63e51c2798e6be5815b1f049efa47d9 /tvix | |
parent | fca8462530460f7db3c71394d01e0f996d3c5d12 (diff) |
fix(tvix/nar-bridge): fix root node decoding and validation r/8382
This got broken while moving things around. We need to parse the b64-decoded bytes. Since we're now validating the root node, we also need to rename the root node to get past the node name validation. There probably should be some tests for this. Co-Authored-By: sinavir@sinavir.fr Change-Id: I8f24a4a0ac107b1ea5b94c0e0ed872a34eb7b587 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11996 Reviewed-by: Brian Olsen <me@griff.name> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix')
-rw-r--r-- | tvix/nar-bridge/src/nar.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tvix/nar-bridge/src/nar.rs b/tvix/nar-bridge/src/nar.rs index 5bce0c973ef3..9ee27c7df5ca 100644 --- a/tvix/nar-bridge/src/nar.rs +++ b/tvix/nar-bridge/src/nar.rs @@ -46,13 +46,18 @@ pub async fn get( } // parse the proto - let root_node: tvix_castore::proto::Node = Message::decode(Bytes::from(root_node_enc)) + let mut root_node: tvix_castore::proto::Node = Message::decode(Bytes::from(root_node_proto)) .map_err(|e| { warn!(err=%e, "unable to decode root node proto"); StatusCode::NOT_FOUND })?; - // validate it. + // validate the node, but add a dummy node name, as we only send unnamed + // nodes + if let Some(rn) = root_node.node { + root_node.node = Some(rn.rename("00000000000000000000000000000000-dummy".into())) + } + let root_node = root_node .validate() .map_err(|e| { |