From f99b7fbfb6cae1b79c9aad508bd66469dd701309 Mon Sep 17 00:00:00 2001 From: lifubang Date: Sat, 5 Oct 2024 10:10:17 +0800 Subject: [PATCH] capability: improve error handling for func Apply Signed-off-by: lifubang --- capability/capability_linux.go | 43 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/capability/capability_linux.go b/capability/capability_linux.go index 0732195..aa0b699 100644 --- a/capability/capability_linux.go +++ b/capability/capability_linux.go @@ -117,6 +117,13 @@ func newPid(pid int) (c Capabilities, retErr error) { return } +func ignoreEINVAL(err error) error { + if errors.Is(err, syscall.EINVAL) { + err = nil + } + return err +} + type capsV3 struct { hdr capHeader data [2]capData @@ -327,7 +334,7 @@ func (c *capsV3) Load() (err error) { return } -func (c *capsV3) Apply(kind CapType) (err error) { +func (c *capsV3) Apply(kind CapType) error { last, err := LastCap() if err != nil { return err @@ -336,21 +343,17 @@ func (c *capsV3) Apply(kind CapType) (err error) { var data [2]capData err = capget(&c.hdr, &data[0]) if err != nil { - return + return err } if (1<