From 6362a616ec591f4949b6bcaa7297a1f9e81cf8a2 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Wed, 1 Apr 2020 11:20:38 -0400 Subject: [PATCH] Force sgid bit to be off before checking volume permission --- pkg/volume/volume_linux_test.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/pkg/volume/volume_linux_test.go b/pkg/volume/volume_linux_test.go index 76834de103a..e1a912bc839 100644 --- a/pkg/volume/volume_linux_test.go +++ b/pkg/volume/volume_linux_test.go @@ -154,15 +154,19 @@ func TestSkipPermissionChange(t *testing.T) { mask := rwMask - if test.sgidMatch { - mask |= os.ModeSetgid - } - if test.permissionMatch { mask |= execMask } - err = os.Chmod(tmpDir, info.Mode()|mask) + if test.sgidMatch { + mask |= os.ModeSetgid + mask = info.Mode() | mask + } else { + nosgidPerm := info.Mode() &^ os.ModeSetgid + mask = nosgidPerm | mask + } + + err = os.Chmod(tmpDir, mask) if err != nil { t.Errorf("Chmod failed on %v: %v", tmpDir, err) } @@ -206,7 +210,8 @@ func TestSetVolumeOwnership(t *testing.T) { // create a subdirectory with invalid permissions rogueDir := filepath.Join(path, "roguedir") - err = os.Mkdir(rogueDir, info.Mode()) + nosgidPerm := info.Mode() &^ os.ModeSetgid + err = os.Mkdir(rogueDir, nosgidPerm) if err != nil { return err }