From 851d8814097fcfb795f05163cb41a55f9da422b4 Mon Sep 17 00:00:00 2001 From: YangKeao Date: Thu, 19 Jan 2023 16:23:36 +0800 Subject: [PATCH] validate whether addr is null before constructing slice Signed-off-by: YangKeao --- src/addr_validate.rs | 4 ++++ src/collector.rs | 2 +- src/report.rs | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/addr_validate.rs b/src/addr_validate.rs index 9e9a34c6..4dd894e8 100644 --- a/src/addr_validate.rs +++ b/src/addr_validate.rs @@ -59,6 +59,10 @@ fn open_pipe() -> nix::Result<()> { } pub fn validate(addr: *const libc::c_void) -> bool { + if addr.is_null() { + return false; + } + const CHECK_LENGTH: usize = 2 * size_of::<*const libc::c_void>() / size_of::(); // read data in the pipe diff --git a/src/collector.rs b/src/collector.rs index 41b34139..c05fb18b 100644 --- a/src/collector.rs +++ b/src/collector.rs @@ -37,7 +37,7 @@ pub struct Bucket { impl Default for Bucket { fn default() -> Bucket { - let entries = Box::new(Default::default()); + let entries = Box::default(); Self { length: 0, entries } } diff --git a/src/report.rs b/src/report.rs index 37b885a8..971cb8d6 100644 --- a/src/report.rs +++ b/src/report.rs @@ -229,7 +229,7 @@ mod protobuf { /// `pprof` will generate google's pprof format report. pub fn pprof(&self) -> crate::Result { let mut dedup_str = HashSet::new(); - for key in self.data.iter().map(|(key, _)| key) { + for key in self.data.keys() { dedup_str.insert(key.thread_name_or_id()); for frame in key.frames.iter() { for symbol in frame {