diff --git a/aya-obj/src/btf/btf.rs b/aya-obj/src/btf/btf.rs index e08c8c9e..2e37d171 100644 --- a/aya-obj/src/btf/btf.rs +++ b/aya-obj/src/btf/btf.rs @@ -5,7 +5,10 @@ use alloc::{ vec, vec::Vec, }; -use core::{ffi::CStr, mem, ptr}; +use core::{ + ffi::{CStr, FromBytesUntilNulError}, + mem, ptr, +}; use bytes::BufMut as _; use log::debug; @@ -386,13 +389,9 @@ impl Btf { } let offset = offset as usize; - let nul = self.strings[offset..] - .iter() - .position(|c| *c == 0u8) - .ok_or(BtfError::InvalidStringOffset { offset })?; - let s = CStr::from_bytes_with_nul(&self.strings[offset..=offset + nul]) - .map_err(|_| BtfError::InvalidStringOffset { offset })?; + let s = CStr::from_bytes_until_nul(&self.strings[offset..]) + .map_err(|FromBytesUntilNulError { .. }| BtfError::InvalidStringOffset { offset })?; Ok(s.to_string_lossy()) }