[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli_api.c

2009-06-08 Thread Scott MacVicar
scottmacTue Jun  9 01:00:47 2009 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/mysqli mysqli_api.c 
  Log:
  MFH #46019 - Memory leak when Mysqli::init() is called multiple times.
  
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.22r2=1.118.2.22.2.23diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.22 
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.23
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.22 Wed Dec 31 11:17:40 2008
+++ php-src/ext/mysqli/mysqli_api.c Tue Jun  9 01:00:47 2009
@@ -15,7 +15,7 @@
   | Author: Georg Richter ge...@php.net|
   +--+
 
-  $Id: mysqli_api.c,v 1.118.2.22.2.22 2008/12/31 11:17:40 sebastian Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.22.2.23 2009/06/09 01:00:47 scottmac Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -1099,7 +1099,13 @@
 PHP_FUNCTION(mysqli_init)
 {
MYSQLI_RESOURCE *mysqli_resource;
-   MY_MYSQL *mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
+   MY_MYSQL *mysql;
+
+   if (getThis()  ((mysqli_object *) 
zend_object_store_get_object(getThis() TSRMLS_CC))-ptr) {
+   return;
+   }
+
+   mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
 
if (!(mysql-mysql = mysql_init(NULL))) {
efree(mysql);



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli_api.c mysqli_nonapi.c

2008-10-27 Thread Andrey Hristov
andrey  Mon Oct 27 14:36:02 2008 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/mysqli mysqli_api.c mysqli_nonapi.c 
  Log:
  MFH: Fix an issue with mysql.default_port not being used
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.20r2=1.118.2.22.2.21diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.20 
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.21
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.20 Tue Jan  1 16:51:09 2008
+++ php-src/ext/mysqli/mysqli_api.c Mon Oct 27 14:36:02 2008
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_api.c,v 1.118.2.22.2.20 2008/01/01 16:51:09 hholzgra Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.22.2.21 2008/10/27 14:36:02 andrey Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -1425,14 +1425,20 @@
/* TODO: safe mode handling */
if (PG(sql_safe_mode)) {
} else {
+   if (!socket_len || !socket) {
+   socket = MyG(default_socket);
+   }
+   if (!port) {
+   port = MyG(default_port);
+   }
if (!passwd) {
passwd = MyG(default_pw);
-   if (!username){
-   username = MyG(default_user);
-   if (!hostname) {
-   hostname = MyG(default_host);
-   }
-   }
+   }
+   if (!username){
+   username = MyG(default_user);
+   }
+   if (!hostname) {
+   hostname = MyG(default_host);
}
}   
 
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.54.2.7.2.6r2=1.54.2.7.2.7diff_format=u
Index: php-src/ext/mysqli/mysqli_nonapi.c
diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7.2.6 
php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7.2.7
--- php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7.2.6 Mon Dec 31 07:20:08 2007
+++ php-src/ext/mysqli/mysqli_nonapi.c  Mon Oct 27 14:36:02 2008
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_nonapi.c,v 1.54.2.7.2.6 2007/12/31 07:20:08 sebastian Exp $ 
+  $Id: mysqli_nonapi.c,v 1.54.2.7.2.7 2008/10/27 14:36:02 andrey Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -56,14 +56,20 @@
/* TODO: safe mode handling */
if (PG(sql_safe_mode)){
} else {
+   if (!socket_len || !socket) {
+   socket = MyG(default_socket);
+   }
+   if (!port) {
+   port = MyG(default_port);
+   }
if (!passwd) {
passwd = MyG(default_pw);
-   if (!username){
-   username = MyG(default_user);
-   if (!hostname) {
-   hostname = MyG(default_host);
-   }
-   }
+   }
+   if (!username){
+   username = MyG(default_user);
+   }
+   if (!hostname) {
+   hostname = MyG(default_host);
}
}
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli_api.c

2007-07-24 Thread Andrey Hristov
andrey  Tue Jul 24 09:22:16 2007 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/mysqli mysqli_api.c 
  Log:
  Fix build with latest 5.1 sources where gptr is no more.
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.13r2=1.118.2.22.2.14diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.13 
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.14
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.13 Thu Jun 28 09:07:40 2007
+++ php-src/ext/mysqli/mysqli_api.c Tue Jul 24 09:22:16 2007
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_api.c,v 1.118.2.22.2.13 2007/06/28 09:07:40 andrey Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.22.2.14 2007/07/24 09:22:16 andrey Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -141,13 +141,13 @@
switch (types[ofs]) {
case 'd': /* Double */
bind[ofs].buffer_type = MYSQL_TYPE_DOUBLE;
-   bind[ofs].buffer = (gptr)Z_DVAL_PP(args[i]);
+   bind[ofs].buffer = (char*)Z_DVAL_PP(args[i]);
bind[ofs].is_null = stmt-param.is_null[ofs];
break;
 
case 'i': /* Integer */
bind[ofs].buffer_type = MYSQL_TYPE_LONG;
-   bind[ofs].buffer = (gptr)Z_LVAL_PP(args[i]);
+   bind[ofs].buffer = (char*)Z_LVAL_PP(args[i]);
bind[ofs].is_null = stmt-param.is_null[ofs];
break;
 
@@ -600,11 +600,11 @@
break;
case MYSQL_TYPE_DOUBLE:

convert_to_double_ex(stmt-param.vars[i]);
-   stmt-stmt-params[i].buffer = 
(gptr)Z_LVAL_PP(stmt-param.vars[i]);
+   stmt-stmt-params[i].buffer = 
(char*)Z_LVAL_PP(stmt-param.vars[i]);
break;
case MYSQL_TYPE_LONG:

convert_to_long_ex(stmt-param.vars[i]);
-   stmt-stmt-params[i].buffer = 
(gptr)Z_LVAL_PP(stmt-param.vars[i]);
+   stmt-stmt-params[i].buffer = 
(char*)Z_LVAL_PP(stmt-param.vars[i]);
break;
default:
break;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli_api.c

2007-06-28 Thread Andrey Hristov
andrey  Thu Jun 28 09:07:40 2007 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/mysqli mysqli_api.c 
  Log:
  Remove dot at the end of the message
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.12r2=1.118.2.22.2.13diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.12 
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.13
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.12 Mon Jun 18 21:51:32 2007
+++ php-src/ext/mysqli/mysqli_api.c Thu Jun 28 09:07:40 2007
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_api.c,v 1.118.2.22.2.12 2007/06/18 21:51:32 stas Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.22.2.13 2007/06/28 09:07:40 andrey Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -239,7 +239,7 @@
var_cnt = argc - start;
 
if (var_cnt != mysql_stmt_field_count(stmt-stmt)) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Number of bind 
variables doesn't match number of fields in prepared statement.);
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, Number of bind 
variables doesn't match number of fields in prepared statement);
efree(args);
RETURN_FALSE;
}

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli_api.c mysqli_nonapi.c

2006-10-02 Thread Hannes Magnusson
bjori   Mon Oct  2 07:44:35 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/mysqli mysqli_api.c mysqli_nonapi.c 
  Log:
  Fix protos
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.7r2=1.118.2.22.2.8diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.7 
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.8
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.7  Fri Sep 29 08:40:10 2006
+++ php-src/ext/mysqli/mysqli_api.c Mon Oct  2 07:44:34 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_api.c,v 1.118.2.22.2.7 2006/09/29 08:40:10 georg Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.22.2.8 2006/10/02 07:44:34 bjori Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -1522,7 +1522,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool mysqli_send_long_data(object stmt, int param_nr, string data)
+/* {{{ proto bool mysqli_stmt_send_long_data(object stmt, int param_nr, string 
data)
 */
 PHP_FUNCTION(mysqli_stmt_send_long_data)
 {
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.54.2.7r2=1.54.2.7.2.1diff_format=u
Index: php-src/ext/mysqli/mysqli_nonapi.c
diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7 
php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7.2.1
--- php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7 Fri Mar 24 09:32:24 2006
+++ php-src/ext/mysqli/mysqli_nonapi.c  Mon Oct  2 07:44:34 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_nonapi.c,v 1.54.2.7 2006/03/24 09:32:24 georg Exp $ 
+  $Id: mysqli_nonapi.c,v 1.54.2.7.2.1 2006/10/02 07:44:34 bjori Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -289,7 +289,7 @@
 }
 /* }}} */
 
-/* {{{ proto object mysqli_get_warnings(object link) */
+/* {{{ proto object mysqli_stmt_get_warnings(object link) */
 PHP_FUNCTION(mysqli_stmt_get_warnings)
 {
MY_STMT *stmt;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli_api.c

2006-09-29 Thread Georg Richter
georg   Fri Sep 29 08:40:10 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/mysqli mysqli_api.c 
  Log:
  MFH: fixed error message
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.6r2=1.118.2.22.2.7diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.6 
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.7
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.6  Fri Aug  4 22:13:59 2006
+++ php-src/ext/mysqli/mysqli_api.c Fri Sep 29 08:40:10 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_api.c,v 1.118.2.22.2.6 2006/08/04 22:13:59 iliaa Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.22.2.7 2006/09/29 08:40:10 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -942,7 +942,7 @@
MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, mysql_result, 
mysqli_result, MYSQLI_STATUS_VALID);
 
if (fieldnr  0 || fieldnr = mysql_num_fields(result)) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Function cannot be 
used with MYSQL_USE_RESULT);
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid field 
offset);
RETURN_FALSE; 
}


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli_api.c

2006-08-04 Thread Ilia Alshanetsky
iliaa   Fri Aug  4 22:13:59 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/mysqli mysqli_api.c 
  Log:
  Improved fix for bug #37671
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.5r2=1.118.2.22.2.6diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.5 
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.6
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.5  Wed Jul 12 09:51:46 2006
+++ php-src/ext/mysqli/mysqli_api.c Fri Aug  4 22:13:59 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_api.c,v 1.118.2.22.2.5 2006/07/12 09:51:46 tony2001 Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.22.2.6 2006/08/04 22:13:59 iliaa Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -294,9 +294,6 @@
case MYSQL_TYPE_LONG:
case MYSQL_TYPE_INT24:
case MYSQL_TYPE_YEAR:
-#if MYSQL_VERSION_ID  50002
-   case MYSQL_TYPE_BIT:
-#endif
convert_to_long_ex(args[i]);
stmt-result.buf[ofs].type = IS_LONG;
/* don't set stmt-result.buf[ofs].buflen to 0, 
we used ecalloc */
@@ -308,10 +305,13 @@
break;
 
case MYSQL_TYPE_LONGLONG:
+#if MYSQL_VERSION_ID  50002
+   case MYSQL_TYPE_BIT:
+#endif
stmt-result.buf[ofs].type = IS_STRING; 
stmt-result.buf[ofs].buflen = 
sizeof(my_ulonglong); 
stmt-result.buf[ofs].val = (char 
*)emalloc(stmt-result.buf[ofs].buflen);
-   bind[ofs].buffer_type = MYSQL_TYPE_LONGLONG;
+   bind[ofs].buffer_type = col_type;
bind[ofs].buffer = stmt-result.buf[ofs].val;
bind[ofs].is_null = stmt-result.is_null[ofs];
bind[ofs].buffer_length = 
stmt-result.buf[ofs].buflen;
@@ -715,7 +715,14 @@
} else {

ZVAL_LONG(stmt-result.vars[i], llval);
}
-   } else {
+   } 
+#if MYSQL_VERSION_ID  50002
+   else if 
(stmt-stmt-bind[i].buffer_type == MYSQL_TYPE_BIT) {
+   llval = *(my_ulonglong 
*)stmt-result.buf[i].val;
+   
ZVAL_LONG(stmt-result.vars[i], llval);
+   }
+#endif
+   else {

ZVAL_STRINGL(stmt-result.vars[i], stmt-result.buf[i].val, 
stmt-result.buf[i].buflen, 1);
}
break;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli_api.c

2006-05-08 Thread Andrey Hristov
andrey  Mon May  8 15:06:52 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/mysqli mysqli_api.c 
  Log:
  tweaks and optimizations
  #tested on 32b and 64b
  
  http://cvs.php.net/viewcvs.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22r2=1.118.2.22.2.1diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22 
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.1
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22  Wed Apr  5 12:17:08 2006
+++ php-src/ext/mysqli/mysqli_api.c Mon May  8 15:06:51 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter [EMAIL PROTECTED]|
   +--+
 
-  $Id: mysqli_api.c,v 1.118.2.22 2006/04/05 12:17:08 georg Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.22.2.1 2006/05/08 15:06:51 andrey Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -89,11 +89,6 @@
unsigned long   rc;
 
/* calculate and check number of parameters */
-   num_vars = argc - 1;
-   if (!getThis()) {
-   /* ignore handle parameter in procedural interface*/
-   --num_vars; 
-   }
if (argc  2) {
/* there has to be at least one pair */
WRONG_PARAM_COUNT;
@@ -105,8 +100,12 @@
 
MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, mysql_stmt, mysqli_stmt, 
MYSQLI_STATUS_VALID); 
 
+   num_vars = argc - 1;
if (getThis()) {
start = 1;
+   } else {
+   /* ignore handle parameter in procedural interface*/
+   --num_vars;
}
 
if (typelen != argc - start) {
@@ -154,23 +153,19 @@
 
case 'b': /* Blob (send data) */
bind[ofs].buffer_type = MYSQL_TYPE_LONG_BLOB;
-   bind[ofs].is_null = 0;
-   bind[ofs].length = 0;
+   /* don't initialize is_null and length to 0 
because we use ecalloc */
break;
 
case 's': /* string */
bind[ofs].buffer_type = MYSQL_TYPE_VAR_STRING;
-   bind[ofs].buffer = NULL; 
-   bind[ofs].buffer_length = 0;
+   /* don't initialize buffer and buffer_length 
because we use ecalloc */
bind[ofs].is_null = stmt-param.is_null[ofs];
break;
 
default:
php_error_docref(NULL TSRMLS_CC, E_WARNING, 
Undefined fieldtype %c (parameter %d), types[ofs], i+1);
-   efree(args);
-   efree(bind);
-   RETURN_FALSE; 
-   break;
+   RETVAL_FALSE;
+   goto end;
}
ofs++;
}
@@ -178,9 +173,8 @@
MYSQLI_REPORT_STMT_ERROR(stmt-stmt);
 
if (rc) {
-   efree(args);
-   efree(bind);
-   RETURN_FALSE;
+   RETVAL_FALSE;
+   goto end;
}
 
stmt-param.var_cnt = num_vars;
@@ -193,10 +187,10 @@
stmt-param.vars[i] = NULL;
}
}
+   RETVAL_TRUE;
+end:
efree(args);
efree(bind);
-
-   RETURN_TRUE;
 }
 /* }}} */
 
@@ -279,12 +273,16 @@
break;
 
case MYSQL_TYPE_NULL:
-   stmt-result.buf[ofs].type = IS_NULL; 
-   stmt-result.buf[ofs].buflen = 0;
+   stmt-result.buf[ofs].type = IS_NULL;
+   /*
+ don't initialize to 0 :
+ 1. stmt-result.buf[ofs].buflen
+ 2. bind[ofs].buffer
+ 3. bind[ofs].buffer_length
+ because memory was allocated with ecalloc
+   */
bind[ofs].buffer_type = MYSQL_TYPE_NULL;
-   bind[ofs].buffer = 0;
bind[ofs].is_null = stmt-result.is_null[ofs];
-   bind[ofs].buffer_length = 0;
break;
 
case MYSQL_TYPE_SHORT:
@@ -294,7 +292,7 @@
case MYSQL_TYPE_YEAR:
convert_to_long_ex(args[i]);
stmt-result.buf[ofs].type = IS_LONG;
-   stmt-result.buf[ofs].buflen = 0;
+   /* don't set stmt-result.buf[ofs].buflen to 0, 
we used ecalloc */
stmt-result.buf[ofs].val = (char