]> git.pld-linux.org Git - packages/ekg.git/commitdiff
- prevents libgadu's segfault on ppc
authorMariusz Mazur <mmazur@pld-linux.org>
Sat, 11 Jan 2003 23:31:44 +0000 (23:31 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    ekg-va_copy.patch -> 1.1

ekg-va_copy.patch [new file with mode: 0644]

diff --git a/ekg-va_copy.patch b/ekg-va_copy.patch
new file mode 100644 (file)
index 0000000..9d7ce43
--- /dev/null
@@ -0,0 +1,47 @@
+--- lib/common.c.orig  Fri Dec 27 00:40:55 2002
++++ lib/common.c       Sat Jan 11 23:17:13 2003
+@@ -42,6 +42,8 @@
+ #ifndef GG_DEBUG_DISABLE
++#define va_copy(x...) __va_copy(x)
++
+ /*
+  * gg_debug() // funkcja wewnêtrzna
+  *
+@@ -81,6 +83,7 @@
+         int size = 0;
+       const char *start;
+       char *buf = NULL;
++      va_list ap2;
+       start = format; 
+@@ -92,21 +95,25 @@
+               size = 128;
+               do {
+                       size *= 2;
++                      va_copy(ap2, ap);
+                       if (!(tmp = realloc(buf, size))) {
+                               free(buf);
+                               return NULL;
+                       }
+                       buf = tmp;
+-                      res = vsnprintf(buf, size, format, ap);
++                      res = vsnprintf(buf, size, format, ap2);
++                      va_end(ap2);
+               } while (res == size - 1 || res == -1);
+       }
+ #else
+       {
+               char tmp[1];
++              va_copy(ap2, ap);
+               
+               /* libce Solarisa przy buforze NULL zawsze zwracaj± -1, wiêc
+                * musimy podaæ co¶ istniej±cego jako cel printf()owania. */
+-              size = vsnprintf(tmp, sizeof(tmp), format, ap);
++              size = vsnprintf(tmp, sizeof(tmp), format, ap2);
++              va_end(ap2);
+               if (!(buf = malloc(size + 1)))
+                       return NULL;
+       }
This page took 0.059322 seconds and 4 git commands to generate.