https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78549

--- Comment #32 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
Author: jvdelisle
Date: Sat Dec 16 19:59:14 2017
New Revision: 255751

URL: https://gcc.gnu.org/viewcvs?rev=255751&root=gcc&view=rev
Log:
2017-12-16  Jerry DeLisle  <jvdeli...@gcc.gnu.org>

        Backport from trunk
        PR libgfortran/78549
        * io/inquire.c (inquire_via_unit): Adjust test for existence for
        pre-connected internal units.
        * io/transfer.c (finalize_transfer): When done with a transfer
        to internal units, free the format buffer and close the stream.
        (st_read_done): Delete freeing the stream, now handled using
        sclose in finalize_transfer. (st_write_done): Likewise.
        * io/unit.c (get_unit): Return NULL for special reserved unit
        numbers, signifying not accessible to the user.
        (init_units): Insert the two special internal units into the
        unit treap. This makes these unit structures available without
        further allocations for later use by internal unit I/O. These
        units are automatically deleted by normal program termination.
        * io/unix.c (mem_close): Add a guard check to protect from double free.

Modified:
    branches/gcc-7-branch/libgfortran/ChangeLog
    branches/gcc-7-branch/libgfortran/io/inquire.c
    branches/gcc-7-branch/libgfortran/io/transfer.c
    branches/gcc-7-branch/libgfortran/io/unit.c
    branches/gcc-7-branch/libgfortran/io/unix.c

Reply via email to