aboutsummaryrefslogtreecommitdiff
path: root/stdio-common
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-12-07 16:50:11 +0000
committerUlrich Drepper <drepper@redhat.com>2007-12-07 16:50:11 +0000
commit26e21e7554ca5bbc719d5b018e26d5eb621c9e2e (patch)
treecba97f6eef732d9fbacf1cc5205f8e3eeeb8c1f1 /stdio-common
parentc9d65f0fbdf83d13e85a82d0b7b564d343a3c64b (diff)
downloadglibc-26e21e7554ca5bbc719d5b018e26d5eb621c9e2e.zip
glibc-26e21e7554ca5bbc719d5b018e26d5eb621c9e2e.tar.gz
glibc-26e21e7554ca5bbc719d5b018e26d5eb621c9e2e.tar.bz2
[BZ #5441, BZ #5452, BZ #5454]
2007-12-07 Ulrich Drepper <drepper@redhat.com> [BZ #5441] * stdio-common/vfscanf.c (_IO_vfwscanf): Don't free ptrs_to_free structure, it's allocated with alloca. * stdio-common/Makefile (tests): Add bug21. * stdio-common/bug21.c: New file. 2007-12-06 Aurelien Jarno <aurelien@aurel32.net> [BZ #5452] * sysdeps/unix/sysv/linux/bits/sched.h: Use __extension__ keyword for gcc's braced-groups. 2007-12-07 Ulrich Drepper <drepper@redhat.com> [BZ #5454] * inet/ether_line.c: Strip hostname of whitespaces. * inet/Makefile (tests): Add tst-ether_line. * inet/tst-ether_line.c: New file.
Diffstat (limited to 'stdio-common')
-rw-r--r--stdio-common/Makefile2
-rw-r--r--stdio-common/bug21.c16
-rw-r--r--stdio-common/vfscanf.c1
3 files changed, 17 insertions, 2 deletions
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index d5b1251..db622af 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -57,7 +57,7 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 bug15 \
tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
- bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20
+ bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21
test-srcs = tst-unbputc tst-printf
diff --git a/stdio-common/bug21.c b/stdio-common/bug21.c
new file mode 100644
index 0000000..d22b9c1
--- /dev/null
+++ b/stdio-common/bug21.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+ static const char buf[] = " ";
+ char *str;
+
+ int r = sscanf (buf, "%as", &str);
+ printf ("%d %p\n", r, str);
+
+ return r != -1 || str != NULL;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index f550109..a03e19c 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -2845,7 +2845,6 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
*p->ptrs[cnt] = NULL;
}
p = p->next;
- free (ptrs_to_free);
ptrs_to_free = p;
}
}