diff options
Diffstat (limited to 'ipkg/ipkg-0.99.121/varargs.patch')
-rw-r--r-- | ipkg/ipkg-0.99.121/varargs.patch | 72 |
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 */ - } |