This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

Re: [PR libfortran/62768] Handle filenames with embedded nulls


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


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