[Bug libfortran/62768] New: Handling of file names with embedded nulls
jb at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Sep 2 07:14:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62768
Bug ID: 62768
Summary: Handling of file names with embedded nulls
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: libfortran
Assignee: unassigned at gcc dot gnu.org
Reporter: jb at gcc dot gnu.org
libgfortran uses various C/POSIX functions for interfacing with the file
systems. In the C/POSIX world, file names are terminated by a null byte,
whereas Fortran strings are not. Consider
program nullfile
implicit none
character(len=100) :: s = "hello" // achar(0) // "world", &
r
open(10, file=s)
inquire(unit=10, name=r)
print *, r
end program nullfile
This program will create a file named "hello", but the inquire will report that
the name is "hello\0world" as that was the Fortran string that was originally
fed to the open statement.
Storing the null-terminated C name in gfc_unit instead of the Fortran string
would fix this, and also save a bunch of malloc/free calls lower in the IO
stack.
More information about the Gcc-bugs
mailing list