Fix vararg handling where code wants to double parse varargs data. ok matt@

This commit is contained in:
drahn 2002-03-16 15:24:26 +00:00
parent 4e31f74723
commit f09bd9153d
4 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-Objects_abstract_c,v 1.1 2002/03/16 15:24:26 drahn Exp $
--- Objects/abstract.c.orig Thu Mar 14 22:19:37 2002
+++ Objects/abstract.c Thu Mar 14 22:20:49 2002
@@ -1770,7 +1770,11 @@ objargs_mktuple(va_list va)
#ifdef VA_LIST_IS_ARRAY
memcpy(countva, va, sizeof(va_list));
#else
+#ifdef __va_copy
+ __va_copy(countva, va);
+#else
countva = va;
+#endif
#endif
while (((PyObject *)va_arg(countva, PyObject *)) != NULL)

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-Objects_stringobject_c,v 1.1 2002/03/16 15:24:26 drahn Exp $
--- Objects/stringobject.c.orig Thu Mar 14 22:01:00 2002
+++ Objects/stringobject.c Thu Mar 14 22:01:54 2002
@@ -175,7 +175,11 @@ PyString_FromFormatV(const char *format,
#ifdef VA_LIST_IS_ARRAY
memcpy(count, vargs, sizeof(va_list));
#else
+#ifdef __va_copy
+ __va_copy(count, vargs);
+#else
count = vargs;
+#endif
#endif
/* step 1: figure out how large a buffer we need */
for (f = format; *f; f++) {

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-Python_getargs_c,v 1.1 2002/03/16 15:24:26 drahn Exp $
--- Python/getargs.c.orig Sun Dec 2 18:43:33 2001
+++ Python/getargs.c Thu Mar 14 22:17:09 2002
@@ -61,7 +61,11 @@ PyArg_VaParse(PyObject *args, char *form
#ifdef VA_LIST_IS_ARRAY
memcpy(lva, va, sizeof(va_list));
#else
+#ifdef __va_copy
+ __va_copy(lva, va);
+#else
lva = va;
+#endif
#endif
return vgetargs1(args, format, &lva, 0);

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-Python_modsupport_c,v 1.1 2002/03/16 15:24:26 drahn Exp $
--- Python/modsupport.c.orig Fri Aug 17 13:39:25 2001
+++ Python/modsupport.c Thu Mar 14 22:17:27 2002
@@ -411,7 +411,11 @@ Py_VaBuildValue(char *format, va_list va
#ifdef VA_LIST_IS_ARRAY
memcpy(lva, va, sizeof(va_list));
#else
+#ifdef __va_copy
+ __va_copy(lva, va);
+#else
lva = va;
+#endif
#endif
if (n < 0)