Loading...
secure/sprintf_chk.c Libc-997.90.3 Libc-1583.60.2
--- Libc/Libc-997.90.3/secure/sprintf_chk.c
+++ Libc/Libc-1583.60.2/secure/sprintf_chk.c
@@ -48,3 +48,25 @@
 
   return done;
 }
+
+int
+__sprintf_object_size_chk (char *dest, size_t dstlen, const char *format, ...)
+{
+    va_list arg;
+    int done;
+
+    va_start (arg, format);
+
+    if (__builtin_expect (dstlen > (size_t) INT_MAX, 0))
+        done = vsprintf (dest, format, arg);
+    else
+    {
+        done = vsnprintf (dest, dstlen, format, arg);
+        if (__builtin_expect(done >= 0 && (size_t) done >= dstlen, 0))
+            __chk_fail_overflow ();
+    }
+
+    va_end (arg);
+
+    return done;
+}