diff --git a/aya-obj/src/btf/btf.rs b/aya-obj/src/btf/btf.rs index 295fb55e..a9049b1e 100644 --- a/aya-obj/src/btf/btf.rs +++ b/aya-obj/src/btf/btf.rs @@ -135,7 +135,7 @@ pub enum BtfError { #[source] io_error: std::io::Error, /// The error log produced by the kernel verifier. - verifier_log: Cow<'static, str>, + verifier_log: String, }, /// offset not found for symbol diff --git a/aya/src/programs/mod.rs b/aya/src/programs/mod.rs index 3ca6854c..7aad3bc9 100644 --- a/aya/src/programs/mod.rs +++ b/aya/src/programs/mod.rs @@ -67,7 +67,6 @@ pub mod xdp; use libc::ENOSPC; use procfs::KernelVersion; use std::{ - borrow::Cow, ffi::CString, io, os::unix::io::{AsRawFd, RawFd}, @@ -143,7 +142,7 @@ pub enum ProgramError { #[source] io_error: io::Error, /// The error log produced by the kernel verifier. - verifier_log: Cow<'static, str>, + verifier_log: String, }, /// A syscall failed. diff --git a/aya/src/sys/bpf.rs b/aya/src/sys/bpf.rs index 5a7dc3c5..f16dc4be 100644 --- a/aya/src/sys/bpf.rs +++ b/aya/src/sys/bpf.rs @@ -1,5 +1,4 @@ use std::{ - borrow::Cow, cmp::{self, min}, ffi::{CStr, CString}, io, @@ -993,13 +992,10 @@ pub(crate) fn bpf_prog_get_next_id(id: u32) -> Result, (c_long, io:: } } -pub(crate) fn retry_with_verifier_logs( +pub(crate) fn retry_with_verifier_logs( max_retries: usize, - f: F, -) -> (SysResult, Cow<'static, str>) -where - F: Fn(&mut [u8]) -> SysResult, -{ + f: impl Fn(&mut [u8]) -> SysResult, +) -> (SysResult, String) { const MIN_LOG_BUF_SIZE: usize = 1024 * 10; const MAX_LOG_BUF_SIZE: usize = (std::u32::MAX >> 8) as usize; @@ -1023,11 +1019,7 @@ where if let Some(pos) = log_buf.iter().position(|b| *b == 0) { log_buf.truncate(pos); } - let log_buf = if log_buf.is_empty() { - "none".into() - } else { - String::from_utf8(log_buf).unwrap().into() - }; + let log_buf = String::from_utf8(log_buf).unwrap(); break (ret, log_buf); }