From: Nicholas Clark Date: Sat, 15 Apr 2006 19:17:51 +0000 (+0000) Subject: Deep in the bowels of creating new and exciting bugs, I managed to X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d4f41c0196a61a9d6f38ee42fc192ebf28ef6420;hp=8498a5184cf05e744bf72b6e3f846f8deac7a425;p=p5sagit%2Fp5-mst-13.2.git Deep in the bowels of creating new and exciting bugs, I managed to segfault the uninitialised value reporting code. This protects against the segfault. p4raw-id: //depot/perl@27818 --- diff --git a/sv.c b/sv.c index 08d9b6a..8171c7f 100644 --- a/sv.c +++ b/sv.c @@ -12089,8 +12089,10 @@ S_find_uninit_var(pTHX_ OP* obase, SV* uninit_sv, bool match) * or are optimized away, then it's unambiguous */ o2 = NULL; for (kid=o; kid; kid = kid->op_sibling) { + SV *sv; if (kid && - ( (kid->op_type == OP_CONST && SvOK(cSVOPx_sv(kid))) + ( (kid->op_type == OP_CONST && (sv = cSVOPx_sv(kid)) + && SvOK(sv)) || (kid->op_type == OP_NULL && ! (kid->op_flags & OPf_KIDS)) || (kid->op_type == OP_PUSHMARK) )