commit | 4eefd77886311f75601b5f4078580e2bfcb621b0 | [log] [tgz] |
---|---|---|
author | Damien Neil <dneil@google.com> | Thu Feb 06 10:27:31 2020 -0800 |
committer | Damien Neil <dneil@google.com> | Thu Feb 06 18:58:27 2020 +0000 |
tree | 4db9dee9761111a3f322b9e91bc03fd6570d8b08 | |
parent | 2eb18f0e62b138c7471b7a4831fb9e3497e23c90 [diff] |
internal/impl: init map value MessageInfos in validator I'm not sure how to write a good test for this one, since it's so specific to both the code and the ordering of initialization. Just sticking the fuzzer-provided case into our standard test message set doesn't do it, because something else has initialized the MessageInfo by the time the test gets there. Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20543 Change-Id: I508222b43e52287f73e2ed32ce9b954a5f81717b Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/218257 Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/internal/impl/validate.go b/internal/impl/validate.go index e210086..e568c75 100644 --- a/internal/impl/validate.go +++ b/internal/impl/validate.go
@@ -434,6 +434,9 @@ vi.mi.init() fallthrough case validationTypeMap: + if vi.mi != nil { + vi.mi.init() + } states = append(states, validationState{ typ: vi.typ, keyType: vi.keyType,