[pbs-devel] applied: [PATCH proxmox-backup 2/3] tape: changer: handle libraries that sends wrong amount of data

Dietmar Maurer dietmar at proxmox.com
Wed Jul 28 12:35:29 CEST 2021


applied

On 7/28/21 12:05 PM, Dominik Csapak wrote:
> if the library sends more data than advertised, simply cut it off,
> but if it sends less data, bail out (depending on how much data is
> missing, trying to parse it could lead to a panic, so bail out early)
>
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>   src/tape/changer/sg_pt_changer.rs | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/src/tape/changer/sg_pt_changer.rs b/src/tape/changer/sg_pt_changer.rs
> index 2c5434f6..7ff9bc9d 100644
> --- a/src/tape/changer/sg_pt_changer.rs
> +++ b/src/tape/changer/sg_pt_changer.rs
> @@ -692,6 +692,15 @@ fn decode_element_status_page(
>               bail!("got wrong first_element_address_reported"); // sanity check
>           }
>   
> +        let len = head.byte_count_of_report_available;
> +        let len = ((len[0] as usize) << 16) + ((len[1] as usize) << 8) + (len[2] as usize);
> +
> +        if len < reader.len() {
> +            reader = &reader[..len];
> +        } else if len > reader.len() {
> +            bail!("wrong amount of data: expected {}, got {}", len, reader.len());
> +        }
> +
>           loop {
>               if reader.is_empty() {
>                   break;





More information about the pbs-devel mailing list