From dc33e12082b6db5a6ca4d09cd52024f9b1f0a88d Mon Sep 17 00:00:00 2001 From: Bahubali Jain Date: Thu, 14 Oct 2021 11:08:07 -0400 Subject: [PATCH] Updated max allowed length for string field NodeID to 256, and for other string fields to 128 --- middleware/specvalidator/spec_validator.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/middleware/specvalidator/spec_validator.go b/middleware/specvalidator/spec_validator.go index 0607378..eb2ef4c 100644 --- a/middleware/specvalidator/spec_validator.go +++ b/middleware/specvalidator/spec_validator.go @@ -770,8 +770,9 @@ func validateVolumeCapabilitiesArg( } const ( - maxFieldString = 256 + maxFieldString = 128 maxFieldMap = 4096 + maxFieldNodeId = 256 ) func validateFieldSizes(msg interface{}) error { @@ -782,11 +783,16 @@ func validateFieldSizes(msg interface{}) error { f := rv.Field(i) switch f.Kind() { case reflect.String: - if l := f.Len(); l > maxFieldString { + maxFieldLen := maxFieldString + if tv.Field(i).Name == "NodeId" { + maxFieldLen = maxFieldNodeId + } + + if l := f.Len(); l > maxFieldLen { return status.Errorf( codes.InvalidArgument, "exceeds size limit: %s: max=%d, size=%d", - tv.Field(i).Name, maxFieldString, l) + tv.Field(i).Name, maxFieldLen, l) } case reflect.Map: if f.Len() == 0 {