summaryrefslogtreecommitdiff
path: root/ext/sqlite/sqlite.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-04-27 13:46:07 +0000
committerMarcus Boerger <helly@php.net>2003-04-27 13:46:07 +0000
commit783d1d7b24047ed0796d2412acc591e31fb51559 (patch)
tree0e829eff1378ace2dbc86716b65aa16aea2062fb /ext/sqlite/sqlite.c
parent23c4c206a4132393ae24d02f0863a273b5119f92 (diff)
downloadphp-git-783d1d7b24047ed0796d2412acc591e31fb51559.tar.gz
More safe_emalloc()
Diffstat (limited to 'ext/sqlite/sqlite.c')
-rw-r--r--ext/sqlite/sqlite.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c
index 6bc776a9cc..84954bd5f0 100644
--- a/ext/sqlite/sqlite.c
+++ b/ext/sqlite/sqlite.c
@@ -37,6 +37,10 @@
#include <sqlite.h>
+#ifndef safe_emalloc
+#define safe_emalloc(a,b,c) emalloc((a)*(b)+(c))
+#endif
+
ZEND_DECLARE_MODULE_GLOBALS(sqlite)
extern int sqlite_encode_binary(const unsigned char *in, int n, unsigned char *out);
@@ -289,7 +293,7 @@ static void php_sqlite_generic_function_callback(sqlite_func *func, int argc, co
efree(callable);
if (argc > 1) {
- zargs = (zval ***)emalloc((argc - 1) * sizeof(zval **));
+ zargs = (zval ***)safe_emalloc((argc - 1), sizeof(zval **), 0);
for (i = 0; i < argc-1; i++) {
zargs[i] = emalloc(sizeof(zval *));
@@ -359,7 +363,7 @@ static void php_sqlite_function_callback(sqlite_func *func, int argc, const char
}
if (argc > 0) {
- zargs = (zval ***)emalloc(argc * sizeof(zval **));
+ zargs = (zval ***)safe_emalloc(argc, sizeof(zval **), 0);
for (i = 0; i < argc; i++) {
zargs[i] = emalloc(sizeof(zval *));
@@ -435,7 +439,7 @@ static void php_sqlite_agg_step_function_callback(sqlite_func *func, int argc, c
}
zargc = argc + 1;
- zargs = (zval ***)emalloc(zargc * sizeof(zval **));
+ zargs = (zval ***)safe_emalloc(zargc, sizeof(zval **), 0);
/* first arg is always the context zval */
context_p = (zval **)sqlite_aggregate_context(func, sizeof(*context_p));