diff options
Diffstat (limited to 'libgo/runtime/go-reflect.c')
-rw-r--r-- | libgo/runtime/go-reflect.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libgo/runtime/go-reflect.c b/libgo/runtime/go-reflect.c index 9485c09..bf13a11 100644 --- a/libgo/runtime/go-reflect.c +++ b/libgo/runtime/go-reflect.c @@ -121,6 +121,9 @@ Reflect (struct __go_empty_interface e) { struct reflect_ret ret; + if (((uintptr_t) e.__type_descriptor & reflectFlags) != 0) + __go_panic_msg ("invalid interface value"); + if (e.__type_descriptor == NULL) { ret.rettype.__type_descriptor = NULL; @@ -166,6 +169,9 @@ Typeof (const struct __go_empty_interface e) { struct __go_empty_interface ret; + if (((uintptr_t) e.__type_descriptor & reflectFlags) != 0) + __go_panic_msg ("invalid interface value"); + if (e.__type_descriptor == NULL) { ret.__type_descriptor = NULL; |