From 1c7fcde2d931e077cf96fa311598314538ac227c Mon Sep 17 00:00:00 2001 From: ache Date: Tue, 22 Jul 2014 19:55:25 +0000 Subject: Checking for __SAPP alone is not enough because it is emulated O_APPEND only, so works for only special fdopen() case. Add real O_APPEND too. --- lib/libc/stdio/ftell.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/libc/stdio/ftell.c b/lib/libc/stdio/ftell.c index 7259e72..258adb9 100644 --- a/lib/libc/stdio/ftell.c +++ b/lib/libc/stdio/ftell.c @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include "namespace.h" #include #include +#include #include #include #include "un-namespace.h" @@ -118,7 +119,7 @@ _ftello(FILE *fp, fpos_t *offset) if (HASUB(fp)) pos -= fp->_r; /* Can be negative at this point. */ } else if ((fp->_flags & __SWR) && fp->_p != NULL) { - if (fp->_flags & __SAPP) { + if (fp->_flags & (__SAPP|O_APPEND)) { pos = _sseek(fp, (fpos_t)0, SEEK_END); if (pos == -1) return (1); -- cgit v1.1