[pbs-devel] [PATCH proxmox-backup v2] tape: mam: actually enforcing the length when writing attributes

Dominik Csapak d.csapak at proxmox.com
Fri May 24 15:29:33 CEST 2024


we have to check against the length of the attribute, not the u16
maximum value. also improve the log output to tell the user what
the actual length was

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v1:
* include the lengths in the error message
 pbs-tape/src/sg_tape/mam.rs | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/pbs-tape/src/sg_tape/mam.rs b/pbs-tape/src/sg_tape/mam.rs
index 4e995d0b..d8398e58 100644
--- a/pbs-tape/src/sg_tape/mam.rs
+++ b/pbs-tape/src/sg_tape/mam.rs
@@ -169,8 +169,12 @@ pub fn write_mam_attribute<F: AsRawFd>(
     attr_data.extend(data);
     if !data.is_empty() && data.len() < attribute.len as usize {
         attr_data.resize(attr_data.len() - data.len() + attribute.len as usize, 0);
-    } else if data.len() > u16::MAX as usize {
-        bail!("data to long");
+    } else if data.len() > attribute.len as usize {
+        bail!(
+            "attribute data length {} over the maximum allowed length {}",
+            data.len(),
+            attribute.len
+        );
     }
 
     parameters.extend(attr_data);
-- 
2.39.2





More information about the pbs-devel mailing list