From 3dfab6fb6443983d22fa075920a3d66dd54817c7 Mon Sep 17 00:00:00 2001 From: LinkTed Date: Tue, 25 Aug 2020 18:38:25 +0200 Subject: [PATCH] Add integer overflow check --- library/std/src/sys/unix/ext/net/ancillary.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/library/std/src/sys/unix/ext/net/ancillary.rs b/library/std/src/sys/unix/ext/net/ancillary.rs index 142526f3a41..8ba389762fb 100644 --- a/library/std/src/sys/unix/ext/net/ancillary.rs +++ b/library/std/src/sys/unix/ext/net/ancillary.rs @@ -72,7 +72,15 @@ fn add_to_ancillary_data( cmsg_level: libc::c_int, cmsg_type: libc::c_int, ) -> bool { - let len = (source.len() * size_of::()) as u32; + let len = if let Some(len) = source.len().checked_mul(size_of::()) { + if let Ok(len) = u32::try_from(len) { + len + } else { + return false; + } + } else { + return false; + }; unsafe { let additional_space = libc::CMSG_SPACE(len) as usize;