public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug stdio/13822] New: fmemopen cannot handle wide chars
@ 2012-03-08 9:11 polacek at redhat dot com
2012-10-25 12:47 ` [Bug stdio/13822] " siddhesh at redhat dot com
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: polacek at redhat dot com @ 2012-03-08 9:11 UTC (permalink / raw)
To: glibc-bugs
http://sourceware.org/bugzilla/show_bug.cgi?id=13822
Bug #: 13822
Summary: fmemopen cannot handle wide chars
Product: glibc
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: stdio
AssignedTo: unassigned@sourceware.org
ReportedBy: polacek@redhat.com
Classification: Unclassified
Created attachment 6271
--> http://sourceware.org/bugzilla/attachment.cgi?id=6271
Testcase.
Attached testcase segfaults with Fedora 16 glibc and trunk as well. The
problem is that fgetws_unlocked calls _IO_getwline which is just
return _IO_getwline_info (fp, buf, n, delim, extract_delim, (wint_t *) 0);
however, in _IO_getwline_info is
_IO_ssize_t len = (fp->_wide_data->_IO_read_end
- fp->_wide_data->_IO_read_ptr);
whereas
(gdb) p fp->_wide_data
$6 = (struct _IO_wide_data *) 0x0
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug stdio/13822] fmemopen cannot handle wide chars
2012-03-08 9:11 [Bug stdio/13822] New: fmemopen cannot handle wide chars polacek at redhat dot com
@ 2012-10-25 12:47 ` siddhesh at redhat dot com
2012-10-25 12:55 ` siddhesh at redhat dot com
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: siddhesh at redhat dot com @ 2012-10-25 12:47 UTC (permalink / raw)
To: glibc-bugs
http://sourceware.org/bugzilla/show_bug.cgi?id=13822
Siddhesh Poyarekar <siddhesh at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |siddhesh at redhat dot com
--- Comment #1 from Siddhesh Poyarekar <siddhesh at redhat dot com> 2012-10-25 12:46:41 UTC ---
That's because fmemopen does not support wide character functions. There's
open_wmemstream that is a close replacement.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug stdio/13822] fmemopen cannot handle wide chars
2012-03-08 9:11 [Bug stdio/13822] New: fmemopen cannot handle wide chars polacek at redhat dot com
2012-10-25 12:47 ` [Bug stdio/13822] " siddhesh at redhat dot com
@ 2012-10-25 12:55 ` siddhesh at redhat dot com
2012-10-25 13:11 ` polacek at redhat dot com
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: siddhesh at redhat dot com @ 2012-10-25 12:55 UTC (permalink / raw)
To: glibc-bugs
http://sourceware.org/bugzilla/show_bug.cgi?id=13822
Siddhesh Poyarekar <siddhesh at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |enhancement
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug stdio/13822] fmemopen cannot handle wide chars
2012-03-08 9:11 [Bug stdio/13822] New: fmemopen cannot handle wide chars polacek at redhat dot com
2012-10-25 12:47 ` [Bug stdio/13822] " siddhesh at redhat dot com
2012-10-25 12:55 ` siddhesh at redhat dot com
@ 2012-10-25 13:11 ` polacek at redhat dot com
2012-10-25 13:21 ` siddhesh at redhat dot com
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: polacek at redhat dot com @ 2012-10-25 13:11 UTC (permalink / raw)
To: glibc-bugs
http://sourceware.org/bugzilla/show_bug.cgi?id=13822
--- Comment #2 from Marek Polacek <polacek at redhat dot com> 2012-10-25 13:10:40 UTC ---
Yes, but I think we shouldn't just segfault.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug stdio/13822] fmemopen cannot handle wide chars
2012-03-08 9:11 [Bug stdio/13822] New: fmemopen cannot handle wide chars polacek at redhat dot com
` (2 preceding siblings ...)
2012-10-25 13:11 ` polacek at redhat dot com
@ 2012-10-25 13:21 ` siddhesh at redhat dot com
2012-10-25 18:12 ` bugdal at aerifal dot cx
2014-06-26 14:01 ` fweimer at redhat dot com
5 siblings, 0 replies; 7+ messages in thread
From: siddhesh at redhat dot com @ 2012-10-25 13:21 UTC (permalink / raw)
To: glibc-bugs
http://sourceware.org/bugzilla/show_bug.cgi?id=13822
--- Comment #3 from Siddhesh Poyarekar <siddhesh at redhat dot com> 2012-10-25 13:20:43 UTC ---
For that I guess it would be simple to make all the wide char functions return
NULL if they're called on an fp with _mode == -1.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug stdio/13822] fmemopen cannot handle wide chars
2012-03-08 9:11 [Bug stdio/13822] New: fmemopen cannot handle wide chars polacek at redhat dot com
` (3 preceding siblings ...)
2012-10-25 13:21 ` siddhesh at redhat dot com
@ 2012-10-25 18:12 ` bugdal at aerifal dot cx
2014-06-26 14:01 ` fweimer at redhat dot com
5 siblings, 0 replies; 7+ messages in thread
From: bugdal at aerifal dot cx @ 2012-10-25 18:12 UTC (permalink / raw)
To: glibc-bugs
http://sourceware.org/bugzilla/show_bug.cgi?id=13822
Rich Felker <bugdal at aerifal dot cx> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugdal at aerifal dot cx
--- Comment #4 from Rich Felker <bugdal at aerifal dot cx> 2012-10-25 18:12:23 UTC ---
Per the standard, calling wide functions on a byte-oriented stream or byte
functions on a wide-oriented stream is not an error; it's undefined behavior.
Therefore, the crash is justified if the stream is byte-oriented.
However, I see nothing in the standard that requires or allows the stream
obtained by fmemopen to be initially byte-oriented, so presumably the POSIX
standard, as written, requires it to be initially unoriented. Unlike
open_wmemstream, which generates a wchar_t string, I think the natural behavior
for fmemopen if put in a wide-oriented mode would be to convert to multibyte
characters, and work with file offsets in bytes, just like an ordinary file
(this is the normal behavior for stream functions; the open_wmemstream behavior
is pathological). This is how my implementation of fmemopen in musl works (not
by design; just as a consequence of how our wide functions work).
Of course, if the glibc maintainers think fmemopen should return a
byte-oriented stream, I would not object to this, but I think that calls for
opening a defect report with the Austin Group and requesting that POSIX specify
that fmemopen returns a byte-oriented stream, or at least that it MAY return a
byte-oriented stream, in which case calling wide functions on it would invoke
undefined behavior.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug stdio/13822] fmemopen cannot handle wide chars
2012-03-08 9:11 [Bug stdio/13822] New: fmemopen cannot handle wide chars polacek at redhat dot com
` (4 preceding siblings ...)
2012-10-25 18:12 ` bugdal at aerifal dot cx
@ 2014-06-26 14:01 ` fweimer at redhat dot com
5 siblings, 0 replies; 7+ messages in thread
From: fweimer at redhat dot com @ 2014-06-26 14:01 UTC (permalink / raw)
To: glibc-bugs
https://sourceware.org/bugzilla/show_bug.cgi?id=13822
Florian Weimer <fweimer at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Flags| |security-
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-06-26 14:01 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-08 9:11 [Bug stdio/13822] New: fmemopen cannot handle wide chars polacek at redhat dot com
2012-10-25 12:47 ` [Bug stdio/13822] " siddhesh at redhat dot com
2012-10-25 12:55 ` siddhesh at redhat dot com
2012-10-25 13:11 ` polacek at redhat dot com
2012-10-25 13:21 ` siddhesh at redhat dot com
2012-10-25 18:12 ` bugdal at aerifal dot cx
2014-06-26 14:01 ` fweimer at redhat dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).