Skip to content

Commit 0dea8b8

Browse files
committed
aya: include NulError source in MapError::InvalidName
- The CString::new failure at MapData::create previously discarded the underlying NulError. Marking it as #[source] so error reporters can walk the chain. This is a SemVer-minor change for callers that destructure MapError::InvalidName { name } (now requires { name, source } or { name, .. }).
1 parent 51273f6 commit 0dea8b8

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

aya/src/maps/mod.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ pub enum MapError {
114114
InvalidName {
115115
/// The map name
116116
name: String,
117+
#[source]
118+
/// The source error.
119+
source: std::ffi::NulError,
117120
},
118121

119122
/// Failed to create map
@@ -608,8 +611,10 @@ impl MapData {
608611
name: &str,
609612
btf_fd: Option<BorrowedFd<'_>>,
610613
) -> Result<Self, MapError> {
611-
let c_name = CString::new(name)
612-
.map_err(|std::ffi::NulError { .. }| MapError::InvalidName { name: name.into() })?;
614+
let c_name = CString::new(name).map_err(|source| MapError::InvalidName {
615+
name: name.into(),
616+
source,
617+
})?;
613618

614619
// BPF_MAP_TYPE_PERF_EVENT_ARRAY's max_entries should not exceed the number of
615620
// CPUs.

xtask/public-api/aya.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -936,6 +936,7 @@ pub aya::maps::MapError::InvalidMapType
936936
pub aya::maps::MapError::InvalidMapType::map_type: u32
937937
pub aya::maps::MapError::InvalidName
938938
pub aya::maps::MapError::InvalidName::name: alloc::string::String
939+
pub aya::maps::MapError::InvalidName::source: alloc::ffi::c_str::NulError
939940
pub aya::maps::MapError::InvalidPinPath
940941
pub aya::maps::MapError::InvalidPinPath::path: std::path::PathBuf
941942
pub aya::maps::MapError::InvalidPinPath::source: alloc::ffi::c_str::NulError
@@ -1711,8 +1712,8 @@ pub fn aya::maps::loaded_maps() -> impl core::iter::traits::iterator::Iterator<I
17111712
pub mod aya::pin
17121713
pub enum aya::pin::PinError
17131714
pub aya::pin::PinError::InvalidPinPath
1714-
pub aya::pin::PinError::InvalidPinPath::error: alloc::ffi::c_str::NulError
17151715
pub aya::pin::PinError::InvalidPinPath::path: std::path::PathBuf
1716+
pub aya::pin::PinError::InvalidPinPath::source: alloc::ffi::c_str::NulError
17161717
pub aya::pin::PinError::NoFd
17171718
pub aya::pin::PinError::NoFd::name: alloc::string::String
17181719
pub aya::pin::PinError::SyscallError(aya::sys::SyscallError)

0 commit comments

Comments
 (0)