[PR libfortran/62768] Handle filenames with embedded nulls

Janne Blomqvist blomqvist.janne@gmail.com
Tue Sep 16 05:53:00 GMT 2014


Ping.

On Fri, Sep 5, 2014 at 3:54 AM, Janne Blomqvist
<blomqvist.janne@gmail.com> wrote:
> Hi,
>
> when opening a file with a name containing an ASCII null character,
> the name is truncated at the first null since the IO API's take
> null-terminated C strings. By storing such a C string in gfc_unit
> instead of the original Fortran string INQUIRE for the file name will
> return the correct name, and the code is simplified slightly. It also
> fixes an bug in open.c(already_open) for the !HAVE_UNLINK_OPEN_FILE
> case in that the file is unlinked before freeing the name (which I
> can't test but seems obvious).
>
> Regtested on x86_64-unknown-linux-gnu, Ok for trunk?
>
> 2014-09-05  Janne Blomqvist  <jb@gcc.gnu.org>
>
>     PR libfortran/62768
>     * io/io.h (gfc_unit): Store C string for the filename.
>     * io/close.c (st_close): Use gfc_unit.filename.
>     * io/inquire.c (inquire_via_unit): Likewise.
>     * io/open.c (new_unit): Likewise.
>     (already_open): Likewise, unlink file before freeing filename.
>     * io/unit.c (init_units): Likewise.
>     (close_unit_1): Likewise.
>     (filename_from_unit): Likewise.
>     * io/unix.c (compare_file_filename): Likewise.
>     (find_file0): Likewise.
>     (delete_file): Likewise.
>
>
> --
> Janne Blomqvist



-- 
Janne Blomqvist



More information about the Gcc-patches mailing list