From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id A0EEF70CDE for ; Tue, 6 Apr 2021 08:28:20 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7417C29AE5 for ; Tue, 6 Apr 2021 08:27:50 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 9898529AA2 for ; Tue, 6 Apr 2021 08:27:48 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 6272E459CE for ; Tue, 6 Apr 2021 08:27:48 +0200 (CEST) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Tue, 6 Apr 2021 08:27:38 +0200 Message-Id: <20210406062747.9356-4-d.csapak@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210406062747.9356-1-d.csapak@proxmox.com> References: <20210406062747.9356-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.173 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox-backup 03/12] tape/drive: clippy fixes X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2021 06:28:20 -0000 fixes: * manual implementation of an assign operation * using clone on a copy type * if chain rewritten with match on Ordering * put part of complex type in type definition Signed-off-by: Dominik Csapak --- src/tape/drive/linux_tape.rs | 2 +- src/tape/drive/mam.rs | 12 +++++++----- src/tape/drive/mod.rs | 4 +++- src/tape/drive/virtual_tape.rs | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/tape/drive/linux_tape.rs b/src/tape/drive/linux_tape.rs index f8949196..7cb2c61b 100644 --- a/src/tape/drive/linux_tape.rs +++ b/src/tape/drive/linux_tape.rs @@ -618,7 +618,7 @@ impl TapeDriver for LinuxTapeHandle { let mut tape_key = [0u8; 32]; - let uuid_bytes: [u8; 16] = uuid.as_bytes().clone(); + let uuid_bytes: [u8; 16] = *uuid.as_bytes(); openssl::pkcs5::pbkdf2_hmac( &item.key, diff --git a/src/tape/drive/mam.rs b/src/tape/drive/mam.rs index cbb377d3..ef47a3d4 100644 --- a/src/tape/drive/mam.rs +++ b/src/tape/drive/mam.rs @@ -132,11 +132,13 @@ fn decode_mam_attributes(data: &[u8]) -> Result, Error> { let expected_len = data_len as usize; - if reader.len() < expected_len { - bail!("read_mam_attributes: got unexpected data len ({} != {})", reader.len(), expected_len); - } else if reader.len() > expected_len { - // Note: Quantum hh7 returns the allocation_length instead of real data_len - reader = &data[4..expected_len+4]; + match reader.len().cmp(&expected_len) { + std::cmp::Ordering::Less => bail!("read_mam_attributes: got unexpected data len ({} != {})", reader.len(), expected_len), + std::cmp::Ordering::Greater => { + // Note: Quantum hh7 returns the allocation_length instead of real data_len + reader = &data[4..expected_len+4]; + } + std::cmp::Ordering::Equal => {}, // expected } let mut list = Vec::new(); diff --git a/src/tape/drive/mod.rs b/src/tape/drive/mod.rs index 5509728c..4d1151ef 100644 --- a/src/tape/drive/mod.rs +++ b/src/tape/drive/mod.rs @@ -244,6 +244,8 @@ pub trait TapeDriver { } } +type DriveHandleAndName = (Box, String); + /// Get the media changer (MediaChange + name) associated with a tape drive. /// /// Returns Ok(None) if the drive has no associated changer device. @@ -254,7 +256,7 @@ pub trait TapeDriver { pub fn media_changer( config: &SectionConfigData, drive: &str, -) -> Result, String)>, Error> { +) -> Result, Error> { match config.sections.get(drive) { Some((section_type_name, config)) => { diff --git a/src/tape/drive/virtual_tape.rs b/src/tape/drive/virtual_tape.rs index d6b3d0c9..93bf84b4 100644 --- a/src/tape/drive/virtual_tape.rs +++ b/src/tape/drive/virtual_tape.rs @@ -336,7 +336,7 @@ impl TapeDriver for VirtualTapeHandle { Some(VirtualTapeStatus { ref mut pos, .. }) => { if count <= *pos { - *pos = *pos - count; + *pos -= count; } else { bail!("backward_space_count_files failed: move before BOT"); } -- 2.20.1