This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug stdio/16532] fdopen(..., "a"); fwrite(); ftello() sequence gives wrong answer


https://sourceware.org/bugzilla/show_bug.cgi?id=16532

Siddhesh Poyarekar <siddhesh at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Siddhesh Poyarekar <siddhesh at redhat dot com> ---
Fixed in master:

commit 000232b9bcbf194f1e5fd0ff380000f341505405
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date:   Tue Mar 4 07:45:58 2014 +0530

    Separate ftell from fseek logic and avoid modifying FILE data (#16532)

    ftell semantics are distinct from fseek(SEEK_CUR) especially when it
    is called on a file handler that is not yet active.  Due to this
    caveat, much care needs to be taken while modifying the handler data
    and hence, this first iteration on separating out ftell focusses on
    maintaining handler data integrity at all times while it figures out
    the current stream offset.  The result is that it makes a syscall for
    every offset request.

    There is scope for optimizing this by caching offsets when we know
    that the handler is active.  A simple way to find out is when the
    buffers have data.  It is not so simple to find this out when the
    buffer is empty without adding some kind of flag.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]