sscanf always calls realloc
authorPaul Pluzhnikov <ppluzhnikov@google.com>
Mon, 9 Jan 2012 01:13:35 +0000 (20:13 -0500)
committerUlrich Drepper <drepper@gmail.com>
Mon, 9 Jan 2012 01:13:35 +0000 (20:13 -0500)
ChangeLog
stdio-common/vfscanf.c

index f8efd9e..be2eddc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-05  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+       * stdio-common/vfscanf.c (_IO_vfscanf_internal): Use alloca when
+       appropriate.
+
 2012-01-08  Ulrich Drepper  <drepper@gmail.com>
 
        * math/Makefile (tests): Add tst-CMPLX.
index 0e71deb..e18a6c3 100644 (file)
@@ -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)                                               \