summaryrefslogtreecommitdiff
path: root/ipkg/ipkg-0.99.121/varargs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'ipkg/ipkg-0.99.121/varargs.patch')
-rw-r--r--ipkg/ipkg-0.99.121/varargs.patch72
1 files changed, 0 insertions, 72 deletions
diff --git a/ipkg/ipkg-0.99.121/varargs.patch b/ipkg/ipkg-0.99.121/varargs.patch
deleted file mode 100644
index cca6b2745d..0000000000
--- a/ipkg/ipkg-0.99.121/varargs.patch
+++ /dev/null
@@ -1,72 +0,0 @@
---- C.old/sprintf_alloc.c 2004-01-13 15:51:48.000000000 -0700
-+++ C/sprintf_alloc.c 2004-05-20 16:47:25.240772176 -0700
-@@ -20,12 +20,12 @@
-
- #include "sprintf_alloc.h"
-
--static int vsprintf_alloc(char **str, const char *fmt, va_list ap);
--
- int sprintf_alloc(char **str, const char *fmt, ...)
- {
- int ret;
- va_list ap;
-+ char *new_str;
-+ int n, size = 100;
-
- if (!str) {
- fprintf(stderr, "Null string pointer passed to sprintf_alloc\n");
-@@ -35,29 +35,27 @@
- fprintf(stderr, "Null fmt string passed to sprintf_alloc\n");
- return -1;
- }
-- va_start(ap, fmt);
-- ret = vsprintf_alloc(str, fmt, ap);
-- va_end(ap);
-
-- return ret;
--}
-+ /* On x86_64 systems, any strings over 100 were segfaulting.
-+ It seems that the ap needs to be reinitalized before every
-+ use of the v*printf() functions. I pulled the functionality out
-+ of vsprintf_alloc and combined it all here instead.
-+ */
-+
-+
-+ /* ripped more or less straight out of PRINTF(3) */
-+
-+ if ((new_str = malloc(size)) == NULL)
-+ return -1;
-
--/* ripped more or less straight out of PRINTF(3) */
--static int vsprintf_alloc(char **str, const char *fmt, va_list ap)
--{
-- char *new_str;
-- /* Guess we need no more than 100 bytes. */
-- int n, size = 100;
--
-- if ((new_str = malloc (size)) == NULL)
-- return -1;
- *str = new_str;
-- while (1) {
-- /* Try to print in the allocated space. */
-- n = vsnprintf (new_str, size, fmt, ap);
-- /* If that worked, return the size. */
-- if (n > -1 && n < size)
-- return n;
-+ while(1) {
-+ va_start(ap, fmt);
-+ n = vsnprintf (new_str, size, fmt, ap);
-+ va_end(ap);
-+ /* If that worked, return the size. */
-+ if (n > -1 && n < size)
-+ return n;
- /* Else try again with more space. */
- if (n > -1) /* glibc 2.1 */
- size = n+1; /* precisely what is needed */
-@@ -71,4 +69,6 @@
- }
- *str = new_str;
- }
-+
-+ return -1; /* Just to be correct - it probably won't get here */
- }