OSDN Git Service

2010-02-09 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Feb 2010 17:04:57 +0000 (17:04 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Feb 2010 17:04:57 +0000 (17:04 +0000)
        PR fortran/42996
        * intrinsics/args.c (get_command_argument_i4): Always return
        commandline-argument length for length parameter.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156630 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/intrinsics/args.c

index 3f52e5f..cd99c41 100644 (file)
@@ -1,3 +1,9 @@
+2010-02-09  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/42996
+       * intrinsics/args.c (get_command_argument_i4): Always return
+       commandline-argument length for length parameter.
+
 2010-02-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libfortran/42742
index 7187bec..83a0502 100644 (file)
@@ -147,11 +147,9 @@ get_command_argument_i4 (GFC_INTEGER_4 *number, char *value,
   if (value != NULL && stat_flag != GFC_GC_FAILURE)
     {
       if (arglen > value_len)
-       {
-        arglen = value_len;
         stat_flag = GFC_GC_VALUE_TOO_SHORT;
-       }
-      memcpy (value, argv[*number], arglen);
+
+      memcpy (value, argv[*number], arglen <= value_len ? arglen : value_len);
     }
 
   if (length != NULL)