From cac266581e2bc3595be60171910db6274c3bf944 Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Thu, 18 Apr 2019 19:25:55 +0200 Subject: [PATCH] src/basic/filio.c: Do not disable file buffers on non-glibc [#130] When opening an existing file with open() and then turning is into a FILE* with fdopen(), a following fputs() returns EOF and sets errno to EINVAL on musl-libc based systems when setvbuf() was used to turn off the file buffer. To remedy this return to the old behavior until v239 and never diesable the file buffer in such cases when not on a glibc based system. Bug: #130 Closes: #130 Signed-off-by: Sven Eden --- src/basic/fileio.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/basic/fileio.c b/src/basic/fileio.c index e981cd024..eaad5ccf0 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -162,6 +162,11 @@ int write_string_file_ts( safe_close(fd); goto fail; } + +#ifndef __GLIBC__ /// elogind must not disable buffers on musl-libc based systems when going this route + if (flags & WRITE_STRING_FILE_DISABLE_BUFFER) + flags ^= WRITE_STRING_FILE_DISABLE_BUFFER; +#endif // __GLIBC__ } (void) __fsetlocking(f, FSETLOCKING_BYCALLER); -- 2.21.0