From b1a17cf2846ff9be8b786d36b7099e9a5a8b2b1f Mon Sep 17 00:00:00 2001 From: maxarchx Date: Fri, 30 Nov 2018 15:13:43 +0500 Subject: [PATCH] Apply UUID string length check before parsing --- pgtype/uuid.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pgtype/uuid.go b/pgtype/uuid.go index f8297b39..5e1eead5 100644 --- a/pgtype/uuid.go +++ b/pgtype/uuid.go @@ -87,6 +87,9 @@ func (src *UUID) AssignTo(dst interface{}) error { // parseUUID converts a string UUID in standard form to a byte array. func parseUUID(src string) (dst [16]byte, err error) { + if len(src) < 36 { + return dst, errors.Errorf("cannot parse UUID %v", src) + } src = src[0:8] + src[9:13] + src[14:18] + src[19:23] + src[24:] buf, err := hex.DecodeString(src) if err != nil {