From b8cbe5d65bb965db424cf8a31b7a265bcced872d Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 1 Feb 2021 12:17:43 +0100 Subject: [PATCH] tape: fix tape alert flag decoding --- src/tape/drive/tape_alert_flags.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tape/drive/tape_alert_flags.rs b/src/tape/drive/tape_alert_flags.rs index e0dc61d8..63381559 100644 --- a/src/tape/drive/tape_alert_flags.rs +++ b/src/tape/drive/tape_alert_flags.rs @@ -130,7 +130,10 @@ fn decode_tape_alert_flags(data: &[u8]) -> Result { bail!("invalid parameter length"); } - let value: u64 = unsafe { reader.read_le_value()? }; + let mut value: u64 = unsafe { reader.read_be_value()? }; + + // bits are in wrong order, reverse them + value = value.reverse_bits(); Ok(TapeAlertFlags::from_bits_truncate(value)) }).map_err(|err| format_err!("decode tape alert flags failed - {}", err))