1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-10 05:03:06 +03:00

libio: Convert __vdprintf_internal to buffers

The internal buffer size is set to 2048 bytes.  This is less than
the original BUFSIZ value used by buffered_vfprintf before
the conversion, but it hopefully covers all cases where write
boundaries matter.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Florian Weimer
2022-12-19 18:56:55 +01:00
parent af7f416551
commit 8ece45e4f5
3 changed files with 53 additions and 29 deletions

View File

@@ -50,6 +50,7 @@ enum __printf_buffer_mode
__printf_buffer_mode_sprintf_chk,
__printf_buffer_mode_to_file,
__printf_buffer_mode_asprintf,
__printf_buffer_mode_dprintf,
__printf_buffer_mode_strfmon,
__printf_buffer_mode_fp, /* For __printf_fp_l_buffer. */
__printf_buffer_mode_fp_to_wide, /* For __wprintf_fp_l_buffer. */
@@ -308,6 +309,9 @@ void __printf_buffer_flush_to_file (struct __printf_buffer_to_file *)
struct __printf_buffer_asprintf;
void __printf_buffer_flush_asprintf (struct __printf_buffer_asprintf *)
attribute_hidden;
struct __printf_buffer_dprintf;
void __printf_buffer_flush_dprintf (struct __printf_buffer_dprintf *)
attribute_hidden;
struct __printf_buffer_fp;
void __printf_buffer_flush_fp (struct __printf_buffer_fp *)
attribute_hidden;
@@ -341,4 +345,9 @@ void __wprintf_buffer_flush_to_file (struct __wprintf_buffer_to_file *)
(final, correctly sized) heap allocation. */
#define PRINTF_BUFFER_SIZE_ASPRINTF 200
/* This should cover most of the packet-oriented file descriptors,
where boundaries between writes could be visible to readers. But
it is still small enough not to cause too many stack overflow issues. */
#define PRINTF_BUFFER_SIZE_DPRINTF 2048
#endif /* PRINTF_BUFFER_H */