32 lines
1.2 KiB
Diff
32 lines
1.2 KiB
Diff
|
commit 20b38e0301279a37a3f1e769843933bcc0d5f736
|
||
|
Author: Paul Pluzhnikov <ppluzhnikov@google.com>
|
||
|
Date: Sun Jan 8 20:13:35 2012 -0500
|
||
|
|
||
|
sscanf always calls realloc
|
||
|
|
||
|
|
||
|
2012-01-05 Paul Pluzhnikov <ppluzhnikov@google.com>
|
||
|
|
||
|
* stdio-common/vfscanf.c (_IO_vfscanf_internal): Use alloca when
|
||
|
appropriate.
|
||
|
|
||
|
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
|
||
|
index 0e71deb..e18a6c3 100644
|
||
|
--- a/stdio-common/vfscanf.c
|
||
|
+++ b/stdio-common/vfscanf.c
|
||
|
@@ -1,4 +1,4 @@
|
||
|
-/* Copyright (C) 1991-2006, 2007, 2010, 2011 Free Software Foundation, Inc.
|
||
|
+/* Copyright (C) 1991-2007, 2010, 2011, 2012 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
|
||
|
@@ -274,7 +274,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
|
||
|
CHAR_T *old = wp; \
|
||
|
size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \
|
||
|
? UCHAR_MAX + 1 : 2 * wpmax); \
|
||
|
- if (use_malloc || __libc_use_alloca (newsize)) \
|
||
|
+ if (use_malloc || !__libc_use_alloca (newsize)) \
|
||
|
{ \
|
||
|
wp = realloc (use_malloc ? wp : NULL, newsize); \
|
||
|
if (wp == NULL) \
|