summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2014-12-04 08:08:37 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2014-12-04 08:08:37 +0530
commitbe349d7042de84c3c5157a5c1fbcad580aed33e1 (patch)
treee49154ef02c2b02573693a3af1a773d5ea3f2470 /ChangeLog
parente3d6dba5dfe2e125b15ea1dd36c8dfa373bb4956 (diff)
downloadglibc-be349d7042de84c3c5157a5c1fbcad580aed33e1.tar
glibc-be349d7042de84c3c5157a5c1fbcad580aed33e1.tar.gz
glibc-be349d7042de84c3c5157a5c1fbcad580aed33e1.tar.bz2
glibc-be349d7042de84c3c5157a5c1fbcad580aed33e1.zip
ftell: seek to end only when there are unflushed bytes (BZ #17647)
Currently we seek to end of file if there are unflushed writes or the stream is in write mode, to get the current offset for writing in append mode, which is the end of file. The latter case (i.e. stream is in write mode, but no unflushed writes) is unnecessary since it will only happen when the stream has just been flushed, in which case the recorded offset ought to be reliable. Removing that case lets ftell give the correct offset when it follows an ftruncate. The latter truncates the file, but does not change the file position, due to which it is permissible to call ftell without an intervening fseek call. Tested on x86_64 to verify that the added test case fails without the patch and succeeds with it, and that there are no additional regressions due to it. [BZ #17647] * libio/fileops.c (do_ftell): Seek only when there are unflushed writes. * libio/wfileops.c (do_ftell_wide): Likewise. * libio/tst-ftell-active-handler.c (do_ftruncate_test): New test case. (do_one_test): Call it.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog10
1 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b064598548..83048e1c34 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2914-12-04 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #17647]
+ * libio/fileops.c (do_ftell): Seek only when there are
+ unflushed writes.
+ * libio/wfileops.c (do_ftell_wide): Likewise.
+ * libio/tst-ftell-active-handler.c (do_ftruncate_test): New
+ test case.
+ (do_one_test): Call it.
+
2014-12-03 Joseph Myers <joseph@codesourcery.com>
* conform/list-header-symbols.pl (%extra_syms): Add getdate_err