usb: clear URB's payload after finishing

Fix genodelabs/genode#5457
This commit is contained in:
Stefan Kalkowski 2025-02-18 15:53:49 +01:00 committed by Christian Helmuth
parent a7422e316d
commit 0393965d5a

View File

@ -304,6 +304,9 @@ class Usb::Urb_handler
Packet_descriptor const p { urb._payload.offset,
urb._payload.bytes };
fn(static_cast<URB&>(urb));
/* clear potentially sensitive packet content */
memset(_tx.source()->packet_content(p), 0, p.size());
_tx.source()->release_packet(p);
};
@ -586,6 +589,8 @@ bool Usb::Urb_handler<SESSION>::_try_process_ack(Tx::Source &tx,
warning("spurious usb-session urb acknowledgement");
}
/* clear potentially sensitive packet content */
memset(tx.packet_content(p), 0, p.size());
tx.release_packet(p);
return true;
}