pub enum VerifierErrorKind {
Show 49 variants
ProgramTooLarge,
ComplexityLimitExceeded,
InvalidOpcode(u8),
InvalidByteSwapWidth(i32),
InvalidAtomicOp(u8),
UnsupportedCallType(u8),
IncompleteLddw,
MalformedLddw,
UnsupportedLddwSource(u8),
InvalidRegister(u8),
JumpOutOfBounds,
FellOffProgramEnd,
UnknownHelper(u32),
InvalidMapIndex(u32),
LddwMapValueNotArray(u32, bpf_map_type),
EmptyArrayMap,
NonConstantBufferSize,
ExpectedProgramArgument(u8),
HelperArgumentTypeMismatch(usize),
HelperArgumentNotMap(u8),
InvalidMapTypeForHelper(bpf_map_type),
UseAfterRelease,
DoubleRelease,
ResourceLeak,
WriteToReadOnlyMap,
WriteToReadOnlyMemory,
OutOfBoundsMemoryAccess,
PointerOffsetOverflow,
UninitializedPointerArithmetic,
StoreToNonPointer,
LoadFromNonPointer,
InvalidStoredValue,
InvalidStructFieldAccess,
WriteToReadOnlyField,
InconsistentStructFieldAccess,
VariableStackOffset,
StackAccessOutOfBounds,
MisalignedStackAccess,
MisalignedAtomicAccess,
AtomicAccessNotAllowed,
UninitializedStackRead,
NonScalarStackRead,
PartialNonScalarStackStore,
PartialNonScalarStackLoad,
WriteToReadOnlyRegister(u8),
InvalidComparison,
InvalidReturnValue,
RegisterNotPacket(u8),
UninitializedPacketOffset,
}Expand description
Specific error kinds reported by the eBPF verifier.
Each variant maps to an errno that matches the one returned by the Linux
verifier for the equivalent failure, see VerifierErrorKind::errno.
Variants§
ProgramTooLarge
ComplexityLimitExceeded
InvalidOpcode(u8)
InvalidByteSwapWidth(i32)
InvalidAtomicOp(u8)
UnsupportedCallType(u8)
IncompleteLddw
MalformedLddw
UnsupportedLddwSource(u8)
InvalidRegister(u8)
JumpOutOfBounds
FellOffProgramEnd
UnknownHelper(u32)
InvalidMapIndex(u32)
LddwMapValueNotArray(u32, bpf_map_type)
EmptyArrayMap
NonConstantBufferSize
ExpectedProgramArgument(u8)
HelperArgumentTypeMismatch(usize)
HelperArgumentNotMap(u8)
InvalidMapTypeForHelper(bpf_map_type)
UseAfterRelease
DoubleRelease
ResourceLeak
WriteToReadOnlyMap
WriteToReadOnlyMemory
OutOfBoundsMemoryAccess
PointerOffsetOverflow
UninitializedPointerArithmetic
StoreToNonPointer
LoadFromNonPointer
InvalidStoredValue
InvalidStructFieldAccess
WriteToReadOnlyField
InconsistentStructFieldAccess
VariableStackOffset
StackAccessOutOfBounds
MisalignedStackAccess
MisalignedAtomicAccess
AtomicAccessNotAllowed
UninitializedStackRead
NonScalarStackRead
PartialNonScalarStackStore
PartialNonScalarStackLoad
WriteToReadOnlyRegister(u8)
InvalidComparison
InvalidReturnValue
RegisterNotPacket(u8)
UninitializedPacketOffset
Implementations§
Trait Implementations§
Source§impl Clone for VerifierErrorKind
impl Clone for VerifierErrorKind
impl Copy for VerifierErrorKind
Source§impl Debug for VerifierErrorKind
impl Debug for VerifierErrorKind
Source§impl Display for VerifierErrorKind
impl Display for VerifierErrorKind
impl Eq for VerifierErrorKind
Source§impl Error for VerifierErrorKind
impl Error for VerifierErrorKind
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for VerifierErrorKind
impl PartialEq for VerifierErrorKind
impl StructuralPartialEq for VerifierErrorKind
Auto Trait Implementations§
impl Freeze for VerifierErrorKind
impl RefUnwindSafe for VerifierErrorKind
impl Send for VerifierErrorKind
impl Sync for VerifierErrorKind
impl Unpin for VerifierErrorKind
impl UnsafeUnpin for VerifierErrorKind
impl UnwindSafe for VerifierErrorKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
fn fidl_into_native(self) -> Box<N>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more