diff options
author | jb <jb@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-13 12:05:01 +0000 |
---|---|---|
committer | jb <jb@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-13 12:05:01 +0000 |
commit | 2cb567cf3aa5f8dcfbf98b1c178785b77d17de61 (patch) | |
tree | c1593d21b75ed82f1d44f238217eb2c1724e03ac /libgfortran/ChangeLog | |
parent | 123f14066a83d32cd32f5026fcfa551ecca0f9ba (diff) |
PR 60324 Unbounded stack allocations in libgfortran.
2014-11-13 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/60324
* configure: Regenerated.
* configure.ac (AM_CFLAGS): Add Werror=vla.
* libgfortran.h (gfc_alloca): Remove macro.
(fc_strdup_notrim): New prototype.
* intrinsics/access.c (access_func): Use fc_strdup rather than
stack allocation.
* intrinsics/chdir.c (chdir_i4_sub): Likewise.
(chdir_i8_sub): Likewise.
* intrinsics/chmod.c (chmod_internal): New function, move logic
here.
(chmod_func): Call chmod_internal.
* intrinsics/env.c (getenv): Use fc_strdup rather than stack
allocation.
(get_environment_variable_i4): Likewise.
* intrinsics/execute_command_line.c (execute_command_line):
Likewise.
* intrinsics/hostnm.c (hostnm_0): New function, use static buffer
rather than VLA.
(hostnm_i4_sub): Call hostnm_0.
(hostnm_i8_sub): Likewise.
(hostnm): Likewise.
* intrinsics/link.c (link_internal): New function, use fc_strdup
rather than stack allocation.
(link_i4_sub): Call link_internal.
(link_i8_sub): Likewise.
(link_i4): Likewise.
(link_i8): Likewise.
* intrinsics/perror.c (perror_sub): Use fc_strdup rather than
stack allocation.
* intrinsics/random.c (random_seed_i4): Use static buffer rather
than VLA, use _Static_assert to make sure it's big enough.
* intrinsics/rename.c (rename_internal): New function, use
fc_strdup rather than stack allocation.
(rename_i4_sub): Call rename_internal.
(rename_i8_sub): Likewise.
(rename_i4): Likewise.
(rename_i8): Likewise.
* intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than
stack allocation.
(stat_i8_sub_0): Likewise.
* intrinsics/symlink.c (symlnk_internal): New function, use
fc_strdup rather than stack allocation.
(symlnk_i4_sub): Call symlnk_internal.
(symlnk_i8_sub): Likewise.
(symlnk_i4): Likewise.
(symlnk_i8): Likewise.
* intrinsics/system.c (system_sub): Use fc_strdup rather than
stack allocation.
* intrinsics/unlink.c (unlink_i4_sub): Likewise.
* io/file_pos.c (READ_CHUNK): Make it a macro rather than variable.
* io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall
back to xmalloc/free for large sizes.
* io/read.c (read_f): Likewise.
* io/transfer.c (MAX_READ): Make it a macro rather than variable.
(WRITE_CHUNK): Likewise.
* io/write_float.def (write_float): Use fixed stack buffer, fall
back to xmalloc/free for large sizes.
* runtime/string.c (fc_strdup_notrim): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217480 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/ChangeLog')
-rw-r--r-- | libgfortran/ChangeLog | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 2d600d1947e..119e1aef402 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,65 @@ +2014-11-13 Janne Blomqvist <jb@gcc.gnu.org> + + PR libfortran/60324 + * configure: Regenerated. + * configure.ac (AM_CFLAGS): Add Werror=vla. + * libgfortran.h (gfc_alloca): Remove macro. + (fc_strdup_notrim): New prototype. + * intrinsics/access.c (access_func): Use fc_strdup rather than + stack allocation. + * intrinsics/chdir.c (chdir_i4_sub): Likewise. + (chdir_i8_sub): Likewise. + * intrinsics/chmod.c (chmod_internal): New function, move logic + here. + (chmod_func): Call chmod_internal. + * intrinsics/env.c (getenv): Use fc_strdup rather than stack + allocation. + (get_environment_variable_i4): Likewise. + * intrinsics/execute_command_line.c (execute_command_line): + Likewise. + * intrinsics/hostnm.c (hostnm_0): New function, use static buffer + rather than VLA. + (hostnm_i4_sub): Call hostnm_0. + (hostnm_i8_sub): Likewise. + (hostnm): Likewise. + * intrinsics/link.c (link_internal): New function, use fc_strdup + rather than stack allocation. + (link_i4_sub): Call link_internal. + (link_i8_sub): Likewise. + (link_i4): Likewise. + (link_i8): Likewise. + * intrinsics/perror.c (perror_sub): Use fc_strdup rather than + stack allocation. + * intrinsics/random.c (random_seed_i4): Use static buffer rather + than VLA, use _Static_assert to make sure it's big enough. + * intrinsics/rename.c (rename_internal): New function, use + fc_strdup rather than stack allocation. + (rename_i4_sub): Call rename_internal. + (rename_i8_sub): Likewise. + (rename_i4): Likewise. + (rename_i8): Likewise. + * intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than + stack allocation. + (stat_i8_sub_0): Likewise. + * intrinsics/symlink.c (symlnk_internal): New function, use + fc_strdup rather than stack allocation. + (symlnk_i4_sub): Call symlnk_internal. + (symlnk_i8_sub): Likewise. + (symlnk_i4): Likewise. + (symlnk_i8): Likewise. + * intrinsics/system.c (system_sub): Use fc_strdup rather than + stack allocation. + * intrinsics/unlink.c (unlink_i4_sub): Likewise. + * io/file_pos.c (READ_CHUNK): Make it a macro rather than variable. + * io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall + back to xmalloc/free for large sizes. + * io/read.c (read_f): Likewise. + * io/transfer.c (MAX_READ): Make it a macro rather than variable. + (WRITE_CHUNK): Likewise. + * io/write_float.def (write_float): Use fixed stack buffer, fall + back to xmalloc/free for large sizes. + * runtime/string.c (fc_strdup_notrim): New function. + 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR target/63610 |