From 4d4217f0c16ef14aa1f38ff7cf88c98755bb8ddd Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Tue, 20 Apr 2021 10:43:06 +0800 Subject: [PATCH] reflect: fix stack overflow panic when using haveIdenticalUnderlyingType --- src/reflect/type.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/reflect/type.go b/src/reflect/type.go index 1782878f86..d50559e933 100644 --- a/src/reflect/type.go +++ b/src/reflect/type.go @@ -1599,7 +1599,7 @@ func haveIdenticalType(T, V Type, cmpTags bool) bool { return T == V } - if T.Name() != V.Name() || T.Kind() != V.Kind() { + if T.Name() != V.Name() || T.Kind() != V.Kind() || T.PkgPath() != V.PkgPath() { return false } @@ -1679,9 +1679,6 @@ func haveIdenticalUnderlyingType(T, V *rtype, cmpTags bool) bool { if tf.name.name() != vf.name.name() { return false } - if tf.typ.Kind() != Struct && tf.typ.str != vf.typ.str { - return false - } if !haveIdenticalType(tf.typ, vf.typ, cmpTags) { return false }