From 724d1a33a076dc58e65deb5f2fc7f2695a21c843 Mon Sep 17 00:00:00 2001 From: LinkTed Date: Sun, 15 Nov 2020 14:46:54 +0100 Subject: [PATCH] Fix bug in `CMSG_NXTHDR` for android. `CMSG_NXTHDR` should return NULL if it is the last control message in the chain. --- src/unix/linux_like/android/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 77bb6ac2de036..a8c4311a0a07b 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2289,6 +2289,9 @@ pub const PF_VSOCK: ::c_int = AF_VSOCK; f! { pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { + if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { + return 0 as *mut cmsghdr; + }; let next = (cmsg as usize + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr;