]> git.saurik.com Git - apple/libc.git/blobdiff - secure/snprintf_chk.c
Libc-1272.250.1.tar.gz
[apple/libc.git] / secure / snprintf_chk.c
index ef45ead36cc13ad6306197cee23753c5535af5dc..3b982b1f35443cab95975623c716b0be0091fbd0 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2007 Apple Inc. All rights reserved.
+ * Copyright (c) 2007-2013 Apple Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  *
  *
  * @APPLE_LICENSE_HEADER_START@
  *
 #include <stdio.h>
 #include <stdarg.h>
 #include <limits.h>
 #include <stdio.h>
 #include <stdarg.h>
 #include <limits.h>
-
-extern void __chk_fail (void) __attribute__((__noreturn__));
-extern int __snprintf_chk (char * __restrict, size_t, int, size_t,
-                           const char * __restrict, ...);
+#include "secure.h"
 
 int
 
 int
-__snprintf_chk (char *s, size_t maxlen, int flags, size_t len,
+__snprintf_chk (char *dest, size_t len, int flags, size_t dstlen,
                const char *format, ...)
 {
   va_list arg;
   int done;
 
                const char *format, ...)
 {
   va_list arg;
   int done;
 
-  if (__builtin_expect (maxlen > len, 0))
-    __chk_fail ();
+  if (__builtin_expect (dstlen < len, 0))
+    __chk_fail_overflow ();
 
   va_start (arg, format);
 
 
   va_start (arg, format);
 
-  done = vsnprintf (s, maxlen, format, arg);
+  done = vsnprintf (dest, len, format, arg);
 
   va_end (arg);
 
 
   va_end (arg);