Bug 507054
Summary: | fsetpos/fseek broken for wide-oriented streams | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Watanabe, Yuki <magicant.starmen> | ||||
Component: | glibc | Assignee: | Andreas Schwab <schwab> | ||||
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | low | ||||||
Version: | 11 | CC: | drepper, jakub, pmuller, schwab | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2009-09-07 13:36:49 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 516995 | ||||||
Attachments: |
|
The bug seems to be connected with this old change, but reverting it breaks other tests. 2002-11-04 Ulrich Drepper <drepper> * libio/wfileops.c (_IO_wfile_seekoff): Don't modify _offset and _wide_data->_IO_read_end if adjustment can be made in the current buffer. Looks like the equivalent of this change has never been applied to wfileops.c: 2004-12-06 Ulrich Drepper <drepper> * libio/fileops.c (_IO_new_file_seekoff): Fix optimization of in-buffer seek. Remove dead code. Fixed in 2.10.90-20. |
Created attachment 348738 [details] a test case Description of problem: The fsetpos and fseek functions does not work for wide-oriented streams. They leave the file position at the wrong place or cause a segfault. Version-Release number of selected component (if applicable): glibc-2.10.1-2 (i686) How reproducible: Sometimes. Steps to Reproduce: Compile and run the attached test case. Actual output of the test case: 1 2 1 1 Expected output of the test case: 1 2 1 3 Additional info: The fflush function seems to affect the behaviour fsetpos. Doing fflush just before fsetpos sometimes makes fsetpos work correctly, but it does not always help.