summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2015-06-24 20:19:55 -0400
committerJarkko Hietaniemi <jhi@iki.fi>2015-06-26 23:09:46 -0400
commit79713c7c7bd61bea80ac0300ea800374e775cfec (patch)
tree1b88e3812610a9b610e26b524fa4af7e93e907d4 /op.c
parent69a23520d7c04374b8cfdac8407d08f6d1b16f45 (diff)
downloadperl-79713c7c7bd61bea80ac0300ea800374e775cfec.tar.gz
assert(cSVOPo) before derefing it.
Diffstat (limited to 'op.c')
-rw-r--r--op.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/op.c b/op.c
index 2c2c520f8f..d78a46e037 100644
--- a/op.c
+++ b/op.c
@@ -8449,9 +8449,14 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
gv = gv_fetchpvs("__ANON__::__ANON__", gv_fetch_flags, SVt_PVCV);
has_name = FALSE;
}
- if (!ec)
- move_proto_attr(&proto, &attrs,
- isGV(gv) ? gv : (GV *)cSVOPo->op_sv);
+ if (!ec) {
+ if (isGV(gv)) {
+ move_proto_attr(&proto, &attrs, gv);
+ } else {
+ assert(cSVOPo);
+ move_proto_attr(&proto, &attrs, (GV *)cSVOPo->op_sv);
+ }
+ }
if (proto) {
assert(proto->op_type == OP_CONST);