add a test case for UID/GID limits

This commit is contained in:
Nicola Murino 2021-03-25 17:30:39 +01:00
parent 5939ac4801
commit 0e50310a66
No known key found for this signature in database
GPG key ID: 2F1FB59433D5A8CB
2 changed files with 16 additions and 2 deletions

View file

@ -822,7 +822,7 @@ func (u *User) GetFsConfigAsJSON() ([]byte, error) {
// GetUID returns a validate uid, suitable for use with os.Chown
func (u *User) GetUID() int {
if u.UID <= 0 || u.UID > int(math.Pow(2, 31))-1 {
if u.UID <= 0 || u.UID > math.MaxInt32 {
return -1
}
return u.UID
@ -830,7 +830,7 @@ func (u *User) GetUID() int {
// GetGID returns a validate gid, suitable for use with os.Chown
func (u *User) GetGID() int {
if u.GID <= 0 || u.GID > int(math.Pow(2, 31))-1 {
if u.GID <= 0 || u.GID > math.MaxInt32 {
return -1
}
return u.GID

View file

@ -7,6 +7,7 @@ import (
"errors"
"fmt"
"io"
"math"
"mime/multipart"
"net"
"net/http"
@ -419,6 +420,19 @@ func TestUserStatus(t *testing.T) {
assert.NoError(t, err)
}
func TestUidGidLimits(t *testing.T) {
u := getTestUser()
u.UID = math.MaxInt32
u.GID = math.MaxInt32
user, _, err := httpdtest.AddUser(u, http.StatusCreated)
assert.NoError(t, err)
assert.Equal(t, math.MaxInt32, user.GetUID())
assert.Equal(t, math.MaxInt32, user.GetGID())
_, err = httpdtest.RemoveUser(user, http.StatusOK)
assert.NoError(t, err)
}
func TestAddUserNoCredentials(t *testing.T) {
u := getTestUser()
u.Password = ""