Skip to content

Commit e86522d

Browse files
committed
replace github.com/syndtr/gocapability with github.com/kolyshkin/capability
Signed-off-by: ningmingxiao <[email protected]>
1 parent 459ce2f commit e86522d

File tree

12 files changed

+108
-209
lines changed

12 files changed

+108
-209
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ require (
1010
github.com/cyphar/filepath-securejoin v0.2.4
1111
github.com/docker/go-units v0.5.0
1212
github.com/godbus/dbus/v5 v5.1.0
13+
github.com/kolyshkin/capability v0.0.0-20240730232143-634ecd5779f0
1314
github.com/moby/sys/mountinfo v0.7.1
1415
github.com/moby/sys/user v0.1.0
1516
github.com/mrunalp/fileutils v0.5.1
1617
github.com/opencontainers/runtime-spec v1.2.0
1718
github.com/opencontainers/selinux v1.11.0
1819
github.com/seccomp/libseccomp-golang v0.10.0
1920
github.com/sirupsen/logrus v1.9.3
20-
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
2121
github.com/urfave/cli v1.22.14
2222
github.com/vishvananda/netlink v1.1.0
2323
golang.org/x/net v0.24.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
2626
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
2727
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
2828
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
29+
github.com/kolyshkin/capability v0.0.0-20240730232143-634ecd5779f0 h1:H16XdVvPM0IuE6/Seytqn1oLj7wx3nbiZUZPotdJ1ko=
30+
github.com/kolyshkin/capability v0.0.0-20240730232143-634ecd5779f0/go.mod h1:LLvqGTUJOPNZaZd47EGYif+S7+CmFocn0v7gt9ue2pg=
2931
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
3032
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
3133
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -60,8 +62,6 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
6062
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
6163
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
6264
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
63-
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
64-
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
6565
github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk=
6666
github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA=
6767
github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=

libcontainer/capabilities/capabilities.go

+21-14
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@ import (
66
"sort"
77
"strings"
88

9+
"github.com/kolyshkin/capability"
910
"github.com/opencontainers/runc/libcontainer/configs"
1011
"github.com/sirupsen/logrus"
11-
"github.com/syndtr/gocapability/capability"
1212
)
1313

1414
const allCapabilityTypes = capability.CAPS | capability.BOUNDING | capability.AMBIENT
1515

1616
var (
17-
capabilityMap map[string]capability.Cap
18-
capTypes = []capability.CapType{
17+
capTypes = []capability.CapType{
1918
capability.BOUNDING,
2019
capability.PERMITTED,
2120
capability.INHERITABLE,
@@ -24,14 +23,19 @@ var (
2423
}
2524
)
2625

27-
func init() {
28-
capabilityMap = make(map[string]capability.Cap, capability.CAP_LAST_CAP+1)
26+
func getCapMap() (map[string]capability.Cap, error) {
27+
lastcap, err := capability.LastCap()
28+
if err != nil {
29+
return nil, err
30+
}
31+
capabilityMap := make(map[string]capability.Cap, lastcap+1)
2932
for _, c := range capability.List() {
30-
if c > capability.CAP_LAST_CAP {
33+
if c > lastcap {
3134
continue
3235
}
3336
capabilityMap["CAP_"+strings.ToUpper(c.String())] = c
3437
}
38+
return capabilityMap, nil
3539
}
3640

3741
// KnownCapabilities returns the list of the known capabilities.
@@ -53,14 +57,17 @@ func New(capConfig *configs.Capabilities) (*Caps, error) {
5357
err error
5458
c Caps
5559
)
56-
60+
cmap, err := getCapMap()
61+
if err != nil {
62+
return nil, err
63+
}
5764
unknownCaps := make(map[string]struct{})
5865
c.caps = map[capability.CapType][]capability.Cap{
59-
capability.BOUNDING: capSlice(capConfig.Bounding, unknownCaps),
60-
capability.EFFECTIVE: capSlice(capConfig.Effective, unknownCaps),
61-
capability.INHERITABLE: capSlice(capConfig.Inheritable, unknownCaps),
62-
capability.PERMITTED: capSlice(capConfig.Permitted, unknownCaps),
63-
capability.AMBIENT: capSlice(capConfig.Ambient, unknownCaps),
66+
capability.BOUNDING: capSlice(capConfig.Bounding, cmap, unknownCaps),
67+
capability.EFFECTIVE: capSlice(capConfig.Effective, cmap, unknownCaps),
68+
capability.INHERITABLE: capSlice(capConfig.Inheritable, cmap, unknownCaps),
69+
capability.PERMITTED: capSlice(capConfig.Permitted, cmap, unknownCaps),
70+
capability.AMBIENT: capSlice(capConfig.Ambient, cmap, unknownCaps),
6471
}
6572
if c.pid, err = capability.NewPid2(0); err != nil {
6673
return nil, err
@@ -77,10 +84,10 @@ func New(capConfig *configs.Capabilities) (*Caps, error) {
7784
// capSlice converts the slice of capability names in caps, to their numeric
7885
// equivalent, and returns them as a slice. Unknown or unavailable capabilities
7986
// are not returned, but appended to unknownCaps.
80-
func capSlice(caps []string, unknownCaps map[string]struct{}) []capability.Cap {
87+
func capSlice(caps []string, cmap map[string]capability.Cap, unknownCaps map[string]struct{}) []capability.Cap {
8188
var out []capability.Cap
8289
for _, c := range caps {
83-
if v, ok := capabilityMap[c]; !ok {
90+
if v, ok := cmap[c]; !ok {
8491
unknownCaps[c] = struct{}{}
8592
} else {
8693
out = append(out, v)

libcontainer/capabilities/capabilities_linux_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"github.com/opencontainers/runc/libcontainer/configs"
99
"github.com/sirupsen/logrus"
1010
"github.com/sirupsen/logrus/hooks/test"
11-
"github.com/syndtr/gocapability/capability"
11+
"github.com/kolyshkin/capability"
1212
)
1313

1414
func TestNew(t *testing.T) {

0 commit comments

Comments
 (0)