mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-02-21 11:08:31 +00:00
Fix file descriptor IPC
This commit is contained in:
parent
3981c9665e
commit
bb02ea3a20
@ -146,7 +146,7 @@ pub trait UnixSocketExt {
|
||||
impl UnixSocketExt for UnixStream {
|
||||
fn send_fds(&mut self, fds: &[RawFd]) -> io::Result<()> {
|
||||
match fds.len() {
|
||||
0 => self.write_encodable(&-1)?,
|
||||
0 => self.write_pod(&0)?,
|
||||
len => {
|
||||
// 4k buffer is reasonable enough
|
||||
let mut buf = [0u8; 4096];
|
||||
@ -166,8 +166,16 @@ impl UnixSocketExt for UnixStream {
|
||||
let mut fd_count = 0;
|
||||
self.peek(bytes_of_mut(&mut fd_count))?;
|
||||
if fd_count < 1 {
|
||||
// Actually consume the data
|
||||
self.read_pod(&mut fd_count)?;
|
||||
return Ok(None);
|
||||
}
|
||||
if fd_count > 1 {
|
||||
warn!(
|
||||
"Received unexpected number of fds: expected=1 actual={}",
|
||||
fd_count
|
||||
);
|
||||
}
|
||||
|
||||
// 4k buffer is reasonable enough
|
||||
let mut buf = [0u8; 4096];
|
||||
|
Loading…
x
Reference in New Issue
Block a user