summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorinsomniac <insomniacslk@users.noreply.github.com>2018-05-25 13:52:30 +0100
committerGitHub <noreply@github.com>2018-05-25 13:52:30 +0100
commitd37b622d85bdf14bc0922833053419dece4df243 (patch)
treec596b5cfaf479267fd238a807666823b4571dcc7
parente374e55a4a9779c13505a9841014267eaaf881ad (diff)
OptUserClass does not allow empty user classes (#67)
-rw-r--r--dhcpv6/option_userclass.go3
-rw-r--r--dhcpv6/option_userclass_test.go9
2 files changed, 7 insertions, 5 deletions
diff --git a/dhcpv6/option_userclass.go b/dhcpv6/option_userclass.go
index 0451bfc..c5ac4ca 100644
--- a/dhcpv6/option_userclass.go
+++ b/dhcpv6/option_userclass.go
@@ -69,5 +69,8 @@ func ParseOptUserClass(data []byte) (*OptUserClass, error) {
opt.UserClasses = append(opt.UserClasses, data[2:ucLen+2])
data = data[2+ucLen:]
}
+ if len(opt.UserClasses) < 1 {
+ return nil, errors.New("ParseOptUserClass: at least one user class is required")
+ }
return &opt, nil
}
diff --git a/dhcpv6/option_userclass_test.go b/dhcpv6/option_userclass_test.go
index 5f72fd2..92c3848 100644
--- a/dhcpv6/option_userclass_test.go
+++ b/dhcpv6/option_userclass_test.go
@@ -11,7 +11,7 @@ func TestParseOptUserClass(t *testing.T) {
0, 9, 'l', 'i', 'n', 'u', 'x', 'b', 'o', 'o', 't',
}
opt, err := ParseOptUserClass(expected)
- require.Nil(t, err)
+ require.NoError(t, err)
require.Equal(t, 1, len(opt.UserClasses))
require.Equal(t, []byte("linuxboot"), opt.UserClasses[0])
}
@@ -22,7 +22,7 @@ func TestParseOptUserClassMultiple(t *testing.T) {
0, 4, 't', 'e', 's', 't',
}
opt, err := ParseOptUserClass(expected)
- require.Nil(t, err)
+ require.NoError(t, err)
require.Equal(t, len(opt.UserClasses), 2)
require.Equal(t, []byte("linuxboot"), opt.UserClasses[0])
require.Equal(t, []byte("test"), opt.UserClasses[1])
@@ -30,9 +30,8 @@ func TestParseOptUserClassMultiple(t *testing.T) {
func TestParseOptUserClassNone(t *testing.T) {
expected := []byte{}
- opt, err := ParseOptUserClass(expected)
- require.Nil(t, err)
- require.Equal(t, 0, len(opt.UserClasses))
+ _, err := ParseOptUserClass(expected)
+ require.Error(t, err)
}
func TestOptUserClassToBytes(t *testing.T) {