RTEMS | open: Fix race condition when called with O_TRUNC (!178)
Sebastian Huber (@sebhub)
gitlab at rtems.org
Fri Aug 9 02:49:49 UTC 2024
Sebastian Huber started a new discussion on cpukit/libcsupport/src/open.c: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/178#note_110766
> if ( rv == 0 ) {
> - rtems_libio_iop_flags_set( iop, LIBIO_FLAGS_OPEN );
> -
> + /*
> + * Postpone the setting of LIBIO_FLAGS_OPEN after the truncation of the
> + * file, this ensures that the file descriptor cannot be used or closed
> + * during or just before the truncation by some other thread.
> + */
> if ( truncate ) {
> - rv = ftruncate( fd, 0 );
> + if ( write_access ) {
> + rv = (*iop->pathinfo.handlers->ftruncate_h)( iop, 0 );
> + } else {
> + rv = -1;
> + errno = EINVAL;
> + }
Blank line between if blocks.
--
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/178#note_110766
You're receiving this email because of your account on gitlab.rtems.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20240809/2fed89ed/attachment-0001.htm>
More information about the bugs
mailing list