summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--NEWS6
-rw-r--r--libio/filedoalloc.c2
3 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 40f460f759..c2cb608065 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-11-30 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #4099]
+ * libio/filedoalloc.c (_IO_file_doallocate): Limit buffer size to
+ _IO_BUFSIZ (8192).
+
2016-11-30 Carlos O'Donell <carlos@redhat.com>
* PROJECTS: Remove file.
diff --git a/NEWS b/NEWS
index 9a45e730af..b2a0b0f1f8 100644
--- a/NEWS
+++ b/NEWS
@@ -80,6 +80,12 @@ Version 2.25
affect the ABI of other libraries that use this type in their interfaces,
if they are compiled or used with those options.
+* The buffer size for byte-oriented stdio streams is now limited to 8192
+ bytes by default. Previously, on Linux, the default buffer size on most
+ file systems was 4096 bytes (and thus remains unchanged), except on
+ network file systems, where the buffer size was unpredictable and could be
+ as large as several megabytes.
+
* The <sys/quota.h> header now includes the <linux/quota.h> header. Support
for the Linux quota interface which predates kernel version 2.4.22 has
been removed.
diff --git a/libio/filedoalloc.c b/libio/filedoalloc.c
index 4f9d738968..ded0725356 100644
--- a/libio/filedoalloc.c
+++ b/libio/filedoalloc.c
@@ -94,7 +94,7 @@ _IO_file_doallocate (_IO_FILE *fp)
fp->_flags |= _IO_LINE_BUF;
}
#if _IO_HAVE_ST_BLKSIZE
- if (st.st_blksize > 0)
+ if (st.st_blksize > 0 && st.st_blksize < _IO_BUFSIZ)
size = st.st_blksize;
#endif
}