OSDN Git Service

* printf/quadmath-printf.c (quadmath_snprintf): Make sure
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 28 Feb 2011 20:31:46 +0000 (20:31 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 28 Feb 2011 20:31:46 +0000 (20:31 +0000)
that for size > 0 str is always zero terminated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170572 138bc75d-0d04-0410-961f-82ee72b054a4

libquadmath/ChangeLog
libquadmath/printf/quadmath-printf.c

index 71fbc2f..cc4bf88 100644 (file)
@@ -1,3 +1,8 @@
+2011-02-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * printf/quadmath-printf.c (quadmath_snprintf): Make sure
+       that for size > 0 str is always zero terminated.
+
 2011-02-20  Jakub Jelinek  <jakub@redhat.com>
 
        PR bootstrap/47827
index 750dc24..b70f432 100644 (file)
@@ -256,7 +256,7 @@ quadmath_snprintf (char *str, size_t size, const char *format, ...)
 
   qfp.fp = NULL;
   qfp.str = str;
-  qfp.size = size;
+  qfp.size = size ? size - 1 : 0;
   qfp.len = 0;
   qfp.file_p = 0;
 
@@ -265,7 +265,7 @@ quadmath_snprintf (char *str, size_t size, const char *format, ...)
   else
     __quadmath_printf_fp (&qfp, &info, (const void *const *)&fpnum_addr2);
 
-  if (qfp.size)
+  if (size)
     *qfp.str = '\0';
 
   return qfp.len;