From 78d87bd3f3ffbf31c8e3893e1054a3d47a9ee992 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 22 Aug 1997 19:16:47 +0000 Subject: Fixed iop/memory leak bug reported by Dan Dickey. --- c/src/lib/libc/libio.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'c/src/lib/libc/libio.c') diff --git a/c/src/lib/libc/libio.c b/c/src/lib/libc/libio.c index ec10184a10..d0ba197c61 100644 --- a/c/src/lib/libc/libio.c +++ b/c/src/lib/libc/libio.c @@ -324,6 +324,7 @@ __rtems_close( rtems_driver_name_t *np; rtems_libio_t *iop; rtems_libio_open_close_args_t args; + int status; if (rtems_file_descriptor_type(fd)) { int (*fp)(int fd); @@ -333,7 +334,9 @@ __rtems_close( errno = EBADF; return -1; } - return (*fp)(fd); + status = (*fp)(fd); + rtems_libio_free(iop); + return status; } iop = rtems_libio_iop(fd); rtems_libio_check_fd(fd); @@ -346,6 +349,8 @@ __rtems_close( rc = rtems_io_close(np->major, np->minor, (void *) &args); + rtems_libio_free(iop); + if (rc != RTEMS_SUCCESSFUL) return rtems_libio_errno(rc); return 0; -- cgit v1.2.3