mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-02-22 17:58:30 +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 {
|
impl UnixSocketExt for UnixStream {
|
||||||
fn send_fds(&mut self, fds: &[RawFd]) -> io::Result<()> {
|
fn send_fds(&mut self, fds: &[RawFd]) -> io::Result<()> {
|
||||||
match fds.len() {
|
match fds.len() {
|
||||||
0 => self.write_encodable(&-1)?,
|
0 => self.write_pod(&0)?,
|
||||||
len => {
|
len => {
|
||||||
// 4k buffer is reasonable enough
|
// 4k buffer is reasonable enough
|
||||||
let mut buf = [0u8; 4096];
|
let mut buf = [0u8; 4096];
|
||||||
@ -166,8 +166,16 @@ impl UnixSocketExt for UnixStream {
|
|||||||
let mut fd_count = 0;
|
let mut fd_count = 0;
|
||||||
self.peek(bytes_of_mut(&mut fd_count))?;
|
self.peek(bytes_of_mut(&mut fd_count))?;
|
||||||
if fd_count < 1 {
|
if fd_count < 1 {
|
||||||
|
// Actually consume the data
|
||||||
|
self.read_pod(&mut fd_count)?;
|
||||||
return Ok(None);
|
return Ok(None);
|
||||||
}
|
}
|
||||||
|
if fd_count > 1 {
|
||||||
|
warn!(
|
||||||
|
"Received unexpected number of fds: expected=1 actual={}",
|
||||||
|
fd_count
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// 4k buffer is reasonable enough
|
// 4k buffer is reasonable enough
|
||||||
let mut buf = [0u8; 4096];
|
let mut buf = [0u8; 4096];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user