summaryrefslogtreecommitdiff
path: root/pp_sys.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-04-16 09:36:18 +0000
committerNicholas Clark <nick@ccl4.org>2006-04-16 09:36:18 +0000
commitf4a7049d1e66956838433895a259b4fb84d25493 (patch)
treeb34f67bc06756e02d3aab3dcbf073529435bec7d /pp_sys.c
parent01f6e8062d776f5a635aed599b0634d217fae39b (diff)
downloadperl-f4a7049d1e66956838433895a259b4fb84d25493.tar.gz
Coverity notes that we might be dereferencing fgv before a check that
it's not NULL. In fact, the code ordering meant that one "if (fgv)" would always be true. So fix this. p4raw-id: //depot/perl@27837
Diffstat (limited to 'pp_sys.c')
-rw-r--r--pp_sys.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/pp_sys.c b/pp_sys.c
index 260f7b2054..5c9bfeafc4 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -1277,16 +1277,17 @@ PP(pp_enterwrite)
else
fgv = gv;
+ if (!fgv) {
+ DIE(aTHX_ "Not a format reference");
+ }
cv = GvFORM(fgv);
if (!cv) {
- if (fgv) {
- SV * const tmpsv = sv_newmortal();
- const char *name;
- gv_efullname4(tmpsv, fgv, NULL, FALSE);
- name = SvPV_nolen_const(tmpsv);
- if (name && *name)
- DIE(aTHX_ "Undefined format \"%s\" called", name);
- }
+ SV * const tmpsv = sv_newmortal();
+ const char *name;
+ gv_efullname4(tmpsv, fgv, NULL, FALSE);
+ name = SvPV_nolen_const(tmpsv);
+ if (name && *name)
+ DIE(aTHX_ "Undefined format \"%s\" called", name);
DIE(aTHX_ "Not a format reference");
}
if (CvCLONE(cv))