From baef823cd550449bfbcc36625b9571389d8ad1af Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 13 Sep 2017 09:22:19 +0200 Subject: libio: Add hold/drop iop reference Check iop reference count in close() and return -1 with errno set to EBUSY in case the file descriptor is still in use. Update #3132. --- cpukit/libcsupport/src/read.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'cpukit/libcsupport/src/read.c') diff --git a/cpukit/libcsupport/src/read.c b/cpukit/libcsupport/src/read.c index d55ff180ae..03c39120bb 100644 --- a/cpukit/libcsupport/src/read.c +++ b/cpukit/libcsupport/src/read.c @@ -31,6 +31,7 @@ ssize_t read( ) { rtems_libio_t *iop; + ssize_t n; rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); @@ -40,7 +41,9 @@ ssize_t read( /* * Now process the read(). */ - return (*iop->pathinfo.handlers->read_h)( iop, buffer, count ); + n = (*iop->pathinfo.handlers->read_h)( iop, buffer, count ); + rtems_libio_iop_drop( iop ); + return n; } #if defined(RTEMS_NEWLIB) && !defined(HAVE__READ_R) -- cgit v1.2.3