2000-05-22  Jakub Jelinek <jakub@redhat.com>

	* stdio-common/vfscanf.c (__vfscanf): Remove bogus check if '-' is
	not the second character in the range.
	* stdio-common/tstscanf.c (main): Add testcase for the above.
	Reported by jik@kamens.brookline.ma.us.
This commit is contained in:
Ulrich Drepper 2000-05-22 16:41:59 +00:00
parent 6aa29abe9f
commit 3f651a4de3
3 changed files with 16 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2000-05-22 Jakub Jelinek <jakub@redhat.com>
* stdio-common/vfscanf.c (__vfscanf): Remove bogus check if '-' is
not the second character in the range.
* stdio-common/tstscanf.c (main): Add testcase for the above.
Reported by jik@kamens.brookline.ma.us.
2000-05-21 H.J. Lu <hjl@gnu.org>
* elf/do-lookup.h (do_lookup_versioned): Replace reloc_type parameter

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 96, 97, 98, 99 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -39,6 +39,13 @@ main (int argc, char **argv)
result = 1;
}
if (sscanf ("08905x", "%9[0-9]", buf) != 1
|| strcmp (buf, "08905") != 0)
{
fputs ("test failed!\n", stdout);
result = 1;
}
sscanf ("conversion] Zero flag Ze]ro#\n", "%*[^]] %[^#]\n", buf);
if (strcmp (buf, "] Zero flag Ze]ro") != 0)
{

View File

@ -1657,9 +1657,8 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
++f;
}
tw = (char *) f;
while ((fc = *f++) != '\0' && fc != ']')
if (fc == '-' && *f != '\0' && *f != ']' && f - 2 != tw
if (fc == '-' && *f != '\0' && *f != ']'
&& (unsigned char) f[-2] <= (unsigned char) *f)
{
/* Add all characters from the one before the '-'