From: Jarkko Hietaniemi Date: Sat, 5 Jul 2003 18:40:51 +0000 (+0000) Subject: Make a read from a write-only fh to set errno X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=862083f7e40bc2a9e3b94aedce56c1336e7bdb25;p=p5sagit%2Fp5-mst-13.2.git Make a read from a write-only fh to set errno (found by Gisle) p4raw-id: //depot/perl@20019 --- diff --git a/perlio.c b/perlio.c index 78b2d18..b0649df 100644 --- a/perlio.c +++ b/perlio.c @@ -2033,8 +2033,11 @@ PerlIOBase_read(pTHX_ PerlIO *f, void *vbuf, Size_t count) { STDCHAR *buf = (STDCHAR *) vbuf; if (f) { - if (!(PerlIOBase(f)->flags & PERLIO_F_CANREAD)) + if (!(PerlIOBase(f)->flags & PERLIO_F_CANREAD)) { + PerlIOBase(f)->flags |= PERLIO_F_ERROR; + SETERRNO(EBADF, SS_IVCHAN); return 0; + } while (count > 0) { SSize_t avail = PerlIO_get_cnt(f); SSize_t take = 0;