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.
This commit is contained in:
Andrey A. Chernov 2014-07-22 19:55:25 +00:00
parent e710ed26a3
commit 44575f7350

View file

@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
#include "namespace.h"
#include <sys/types.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#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);