diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 6940f790b5c9..251e6b4c462c 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2017-11-28 Jerry DeLisle + + PR libgfortran/83168 + * io/write.c (select_string): Bump size by one to avoid + overrun. + 2017-11-24 Janne Blomqvist PR fortran/36313 diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index f4172029c0ed..582d196c4e30 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -1552,7 +1552,7 @@ select_string (st_parameter_dt *dtp, const fnode *f, char *buf, size_t *size, int kind) { char *result; - *size = size_from_kind (dtp, f, kind) + f->u.real.d; + *size = size_from_kind (dtp, f, kind) + f->u.real.d + 1; if (*size > BUF_STACK_SZ) result = xmalloc (*size); else