cvs: php4 /ext/midgard midgard.c
| From: | David Guerizec | Date: | Wed, 21 Feb 2001 12:21:02 +0000 |
| Subject: | cvs: php4 /ext/midgard midgard.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-4183@lists.php.net to get a copy of this message | ||
davidg Wed Feb 21 04:21:02 2001 EDT
Modified files:
/php4/ext/midgard midgard.c
Log:
used dynamic alloc to avoid segfault ;)
Index: php4/ext/midgard/midgard.c
diff -u php4/ext/midgard/midgard.c:1.9 php4/ext/midgard/midgard.c:1.10
--- php4/ext/midgard/midgard.c:1.9 Tue Feb 20 16:29:34 2001
+++ php4/ext/midgard/midgard.c Wed Feb 21 04:21:01 2001
@@ -1,4 +1,4 @@
-/* $Id: midgard.c,v 1.9 2001/02/21 00:29:34 davidg Exp $
+/* $Id: midgard.c,v 1.10 2001/02/21 12:21:01 davidg Exp $
Copyright (C) 1999 Jukka Zitting <jukka.zitting@iki.fi>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <emile@iris-advies.com>
@@ -707,13 +707,14 @@
void midgard_user_call_func(midgard *mgd, int id, int level, void *xparam)
{
- zval z_id, z_level, z_xparam, *args[3]={&z_id,&z_level,&z_xparam};
+ zval *args[3];
zval ** xp = (zval **)xparam;
- zval retval, *return_value = &retval; //just to make sure
+ zval *return_value;
- ZVAL_LONG(args[0], id);
- ZVAL_LONG(args[1], level);
- args[2] = xp[0];
+ ALLOC_ZVAL(return_value); ZVAL_NULL(return_value);
+ ALLOC_ZVAL(args[0]); ZVAL_LONG(args[0], id);
+ ALLOC_ZVAL(args[1]); ZVAL_LONG(args[1], level);
+ args[2] = xp[0]; // DG: is this needed ? -> zval_copy_ctor(args[2]);
if(call_user_function(CG(function_table), NULL,
xp[1], return_value, 3,
@@ -722,7 +723,9 @@
(xp[1])->value.str.val);
return;
}
-
+ zval_dtor(return_value);
+ zval_dtor(args[0]);
+ zval_dtor(args[1]);
}
#endif /* HAVE_MIDGARD */