+2006-11-09 Uros Bizjak <ubizjak@gmail.com>
+
+ * env.c (parse_schedule): Reject out of range values.
+ (parse_unsigned_long): Reject out of range, negative or zero values.
+
+
2006-10-29 Jakub Jelinek <jakub@redhat.com>
PR fortran/29629
parse_schedule (void)
{
char *env, *end;
+ unsigned long value;
env = getenv ("OMP_SCHEDULE");
if (env == NULL)
if (*env == '\0')
goto invalid;
- gomp_run_sched_chunk = strtoul (env, &end, 10);
+ errno = 0;
+ value = strtoul (env, &end, 10);
+ if (errno)
+ goto invalid;
+
while (isspace ((unsigned char) *end))
++end;
if (*end != '\0')
goto invalid;
+
+ gomp_run_sched_chunk = value;
return;
unknown:
invalid:
gomp_error ("Invalid value for chunk size in "
"environment variable OMP_SCHEDULE");
- gomp_run_sched_chunk = 1;
return;
}
if (*env == '\0')
goto invalid;
+ errno = 0;
value = strtoul (env, &end, 10);
+ if (errno || (long) value <= 0)
+ goto invalid;
+
while (isspace ((unsigned char) *end))
++end;
if (*end != '\0')