mirror of git://sourceware.org/git/glibc.git
Linux: Fix '__close_nocancel_nostatus' clobbering 'errno' [BZ #33035]
Fix fallout from commit c181840c93
("Consolidate non cancellable close
call") that caused '__close_nocancel_nostatus' to clobber 'errno' on a
close(2) failure, a 2.27 regression.
The problem came from a rewrite from 'close_not_cancel_no_status' to
'__close_nocancel_nostatus' switching from an inline implementation that
used INTERNAL_SYSCALL macro (which stays away from 'errno') to a call to
'__close_nocancel' function that uses INLINE_SYSCALL_CALL macro (which
does poke at 'errno').
Implement '__close_nocancel_nostatus' in terms of INTERNAL_SYSCALL_CALL
then, which leaves 'errno' intact.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
This commit is contained in:
parent
db94e6343a
commit
3b0d495ac4
|
@ -73,7 +73,7 @@ hidden_proto (__fcntl64_nocancel)
|
|||
static inline void
|
||||
__close_nocancel_nostatus (int fd)
|
||||
{
|
||||
__close_nocancel (fd);
|
||||
INTERNAL_SYSCALL_CALL (close, fd);
|
||||
}
|
||||
|
||||
/* Non cancellable writev syscall that does not also set errno in case of
|
||||
|
|
Loading…
Reference in New Issue