svn commit: r268991 - head/lib/libc/stdio

Andrey A. Chernov ache at FreeBSD.org
Tue Jul 22 19:55:26 UTC 2014


Author: ache
Date: Tue Jul 22 19:55:25 2014
New Revision: 268991
URL: http://svnweb.freebsd.org/changeset/base/268991

Log:
  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.

Modified:
  head/lib/libc/stdio/ftell.c

Modified: head/lib/libc/stdio/ftell.c
==============================================================================
--- head/lib/libc/stdio/ftell.c	Tue Jul 22 19:54:22 2014	(r268990)
+++ head/lib/libc/stdio/ftell.c	Tue Jul 22 19:55:25 2014	(r268991)
@@ -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);


More information about the svn-src-head mailing list