diff options
author | insomniac <insomniacslk@users.noreply.github.com> | 2018-05-25 13:52:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-25 13:52:30 +0100 |
commit | d37b622d85bdf14bc0922833053419dece4df243 (patch) | |
tree | c596b5cfaf479267fd238a807666823b4571dcc7 | |
parent | e374e55a4a9779c13505a9841014267eaaf881ad (diff) |
OptUserClass does not allow empty user classes (#67)
-rw-r--r-- | dhcpv6/option_userclass.go | 3 | ||||
-rw-r--r-- | dhcpv6/option_userclass_test.go | 9 |
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) { |