OK

Thanks
Chris

On 20/9/2023 7:18 am, Kinsey Moore wrote:
> The documentation for this function suggests that it can handle invalid
> descriptors safely. This change allows negative descriptors to be
> handled without a crash.
> ---
>  rtemsbsd/include/machine/rtems-bsd-libio.h | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/rtemsbsd/include/machine/rtems-bsd-libio.h 
> b/rtemsbsd/include/machine/rtems-bsd-libio.h
> index e662a9ec..8cc67ae3 100644
> --- a/rtemsbsd/include/machine/rtems-bsd-libio.h
> +++ b/rtemsbsd/include/machine/rtems-bsd-libio.h
> @@ -228,7 +228,7 @@ rtems_bsd_libio_iop_hold(int fd, rtems_libio_t **iopp)
>       rtems_libio_t *iop = NULL;
>       unsigned int flags = 0;
>       int ffd = -1;
> -     if (fd < rtems_libio_number_iops) {
> +     if (fd >= 0 && fd < rtems_libio_number_iops) {
>               iop = rtems_libio_iop(fd);
>               flags = rtems_libio_iop_hold(iop);
>               if ((flags & LIBIO_FLAGS_OPEN) != 0) {
> @@ -249,7 +249,9 @@ rtems_bsd_libio_iop_hold(int fd, rtems_libio_t **iopp)
>               if (RTEMS_BSD_DESCRIP_TRACE)
>                       flags = iop->flags;
>       } else {
> -             *iopp = NULL;
> +             if (iopp != NULL) {
> +                     *iopp = NULL;
> +             }
>       }
>       if (RTEMS_BSD_DESCRIP_TRACE)
>               printf("bsd: iop: hold: fd=%d ffd=%d refs=%d iop=%p by %p\n",
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to