[pbs-devel] [PATCH proxmox-backup] tape: mam: actually enforcing the length when writing attributes
Dominik Csapak
d.csapak at proxmox.com
Fri May 24 10:19:55 CEST 2024
On 5/24/24 09:50, Thomas Lamprecht wrote:
> Am 23/05/2024 um 12:08 schrieb Dominik Csapak:
>> we have to check against the length of the attribute, not the u16
>> maximum value.
>>
>> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> ---
>> pbs-tape/src/sg_tape/mam.rs | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/pbs-tape/src/sg_tape/mam.rs b/pbs-tape/src/sg_tape/mam.rs
>> index 4e995d0b..dc5163a5 100644
>> --- a/pbs-tape/src/sg_tape/mam.rs
>> +++ b/pbs-tape/src/sg_tape/mam.rs
>> @@ -169,7 +169,7 @@ 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 {
>> + } else if data.len() > attribute.len as usize {
>> bail!("data to long");
>
> Can we extend this error with the attribute name, the length we got and
> the defined max length to have some more info for when a user runs into
> this?
>
> Something like:
>
> bail!("attribute '{}' length {} is over the maximum allowed length {}", ...);
>
> Or is this error already extended/concatenated with similar info somewhere
> in the return chain (sorry, just doing a quick review directly in my MUA)
it's logged with:
could not set MAM attribute {id}: {err}
and from the id we can infer the maximum length
but printing the expected/actual len probably make sense
More information about the pbs-devel
mailing list