From: Rich Felker Date: Fri, 7 Feb 2014 06:16:53 +0000 (-0500) Subject: in fdopen, avoid setting O_APPEND flag if it's already set X-Git-Tag: v1.0.0~72 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=758ab35a167ac17a4e3102cee5d16b75053842a7;p=oweals%2Fmusl.git in fdopen, avoid setting O_APPEND flag if it's already set this saves a syscall in the case where the underlying open already took place with O_APPEND, which is common because fopen with append modes sets O_APPEND at the time of open before passing the file descriptor to __fdopen. --- diff --git a/src/stdio/__fdopen.c b/src/stdio/__fdopen.c index a2ca62b1..a6ae73a2 100644 --- a/src/stdio/__fdopen.c +++ b/src/stdio/__fdopen.c @@ -32,7 +32,8 @@ FILE *__fdopen(int fd, const char *mode) /* Set append mode on fd if opened for append */ if (*mode == 'a') { int flags = __syscall(SYS_fcntl, fd, F_GETFL); - __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); + if (!(flags & O_APPEND)) + __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); f->flags |= F_APP; }