summaryrefslogtreecommitdiff
path: root/libio
diff options
context:
space:
mode:
Diffstat (limited to 'libio')
-rw-r--r--libio/stdfiles.c2
-rw-r--r--libio/strops.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/libio/stdfiles.c b/libio/stdfiles.c
index 56861666af..7eb828350c 100644
--- a/libio/stdfiles.c
+++ b/libio/stdfiles.c
@@ -39,7 +39,7 @@
= {{FILEBUF_LITERAL(CHAIN, FLAGS, FD), &_IO_file_jumps},}; \
default_symbol_version (INAME, NAME, GLIBC_2.1)
#else
-#define DEF_STDFILE(INAME, FD, CHAIN, FLAGS) \
+#define DEF_STDFILE(INAME, NAME, FD, CHAIN, FLAGS) \
struct _IO_FILE_complete INAME \
= {{FILEBUF_LITERAL(CHAIN, FLAGS, FD), &_IO_file_jumps},}; \
default_symbol_version (INAME, NAME, GLIBC_2.1)
diff --git a/libio/strops.c b/libio/strops.c
index c596315b60..01f8d6eeb7 100644
--- a/libio/strops.c
+++ b/libio/strops.c
@@ -215,6 +215,9 @@ _IO_str_seekoff (fp, offset, dir, mode)
_IO_ssize_t cur_size = _IO_str_count (fp);
_IO_fpos64_t new_pos = EOF;
+ if (mode == 0 && (fp->_flags & _IO_TIED_PUT_GET))
+ mode = (fp->_flags & _IO_CURRENTLY_PUTTING ? _IOS_OUTPUT : _IOS_INPUT);
+
/* Move the get pointer, if requested. */
if (mode & _IOS_INPUT)
{