diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2010-06-04 06:50:11 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2010-06-04 06:50:11 +0000 |
commit | 07fc109c14de23eeadc166eec55d954d2993c8bd (patch) | |
tree | ba8bc66a951f93d24d074b3562064e4e8da744bc /libgfortran/intrinsics/date_and_time.c | |
parent | 308e51aa12cc0df15a524c9c90f4d349eca90290 (diff) | |
download | gcc-07fc109c14de23eeadc166eec55d954d2993c8bd.zip gcc-07fc109c14de23eeadc166eec55d954d2993c8bd.tar.gz gcc-07fc109c14de23eeadc166eec55d954d2993c8bd.tar.bz2 |
re PR libfortran/34670 (bounds checking for array intrinsics)
2010-06-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34670
* intrinsics/date_and_time.c: Replace assert with runtime_error
when VALUE is too small.
From-SVN: r160253
Diffstat (limited to 'libgfortran/intrinsics/date_and_time.c')
-rw-r--r-- | libgfortran/intrinsics/date_and_time.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libgfortran/intrinsics/date_and_time.c b/libgfortran/intrinsics/date_and_time.c index 647dd9a..21e4320 100644 --- a/libgfortran/intrinsics/date_and_time.c +++ b/libgfortran/intrinsics/date_and_time.c @@ -280,8 +280,12 @@ date_and_time (char *__date, char *__time, char *__zone, delta = GFC_DESCRIPTOR_STRIDE(__values,0); if (delta == 0) delta = 1; + + if (unlikely (len < VALUES_SIZE)) + runtime_error ("Incorrect extent in VALUE argument to" + " DATE_AND_TIME intrinsic: is %ld, should" + " be >=%ld", (long int) len, (long int) VALUES_SIZE); - assert (len >= VALUES_SIZE); /* Cope with different type kinds. */ if (elt_size == 4) { |