Skip to content

Commit b9576c1

Browse files
committed
PerlIO::via: remove redundant NULL check
The `if (gv)` check is pointless because `GvIOp(gv)` already dereferences `gv`, so if `gv` could be NULL, we'd already have undefined behavior (most likely a segfault) before reaching the `if`. Make the code's implicit assumptions explicit by adding `assert(gv)` before dereferencing. Fixes Coverity CID 584859.
1 parent d143571 commit b9576c1

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

ext/PerlIO-via/via.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package PerlIO::via;
2-
our $VERSION = '0.20';
2+
our $VERSION = '0.21';
33
require XSLoader;
44
XSLoader::load();
55
1;

ext/PerlIO-via/via.xs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,12 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags,
9696
if (!package)
9797
return Nullsv; /* can this ever happen? */
9898
gv = newGVgen(package);
99+
assert(gv);
99100
GvIOp(gv) = newIO();
100101
s->fh = newRV((SV *) gv);
101102
s->io = GvIOp(gv);
102-
if (gv) {
103-
/* shamelessly stolen from IO::File's new_tmpfile() */
104-
(void) hv_delete(GvSTASH(gv), GvNAME(gv), GvNAMELEN(gv), G_DISCARD);
105-
}
103+
/* shamelessly stolen from IO::File's new_tmpfile() */
104+
(void) hv_delete(GvSTASH(gv), GvNAME(gv), GvNAMELEN(gv), G_DISCARD);
106105
}
107106
IoIFP(s->io) = PerlIONext(f);
108107
IoOFP(s->io) = PerlIONext(f);

0 commit comments

Comments
 (0)