mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
authgraph: cope with LocalTa being dropped
When a LocalTa instance is used in a fuzzer, it gets dropped at the end of processing each fuzz input. This makes the `mpsc::channel`s fail, so update to cope with this. Bug: 316075932 Test: run fuzzer on Cuttlefish Change-Id: I069f441013e269f652cbe1ff3053606f9bcb2dfd
This commit is contained in:
@@ -22,6 +22,7 @@ use authgraph_core::{
|
||||
ta::{AuthGraphTa, Role},
|
||||
};
|
||||
use authgraph_hal::channel::SerializedChannel;
|
||||
use log::error;
|
||||
use std::cell::RefCell;
|
||||
use std::rc::Rc;
|
||||
use std::sync::{mpsc, Mutex};
|
||||
@@ -57,10 +58,23 @@ impl LocalTa {
|
||||
);
|
||||
// Loop forever processing request messages.
|
||||
loop {
|
||||
let req_data: Vec<u8> = in_rx.recv().expect("failed to receive next req");
|
||||
let req_data: Vec<u8> = match in_rx.recv() {
|
||||
Ok(data) => data,
|
||||
Err(_) => {
|
||||
error!("local TA failed to receive request!");
|
||||
break;
|
||||
}
|
||||
};
|
||||
let rsp_data = ta.process(&req_data);
|
||||
out_tx.send(rsp_data).expect("failed to send out rsp");
|
||||
match out_tx.send(rsp_data) {
|
||||
Ok(_) => {}
|
||||
Err(_) => {
|
||||
error!("local TA failed to send out response");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
error!("local TA terminating!");
|
||||
});
|
||||
Ok(Self {
|
||||
channels: Mutex::new(Channels { in_tx, out_rx }),
|
||||
|
||||
Reference in New Issue
Block a user