@@ -309,9 +309,7 @@ static zend_string* mysql_handle_quoter(pdo_dbh_t *dbh, const zend_string *unquo
309
309
{
310
310
pdo_mysql_db_handle * H = (pdo_mysql_db_handle * )dbh -> driver_data ;
311
311
bool use_national_character_set = 0 ;
312
- char * quoted ;
313
312
size_t quotedlen ;
314
- zend_string * quoted_str ;
315
313
316
314
if (H -> assume_national_character_set_strings ) {
317
315
use_national_character_set = 1 ;
@@ -326,7 +324,9 @@ static zend_string* mysql_handle_quoter(pdo_dbh_t *dbh, const zend_string *unquo
326
324
PDO_DBG_ENTER ("mysql_handle_quoter" );
327
325
PDO_DBG_INF_FMT ("dbh=%p" , dbh );
328
326
PDO_DBG_INF_FMT ("unquoted=%.*s" , (int )ZSTR_LEN (unquoted ), ZSTR_VAL (unquoted ));
329
- quoted = safe_emalloc (2 , ZSTR_LEN (unquoted ), 3 + (use_national_character_set ? 1 : 0 ));
327
+
328
+ zend_string * quoted_str = zend_string_safe_alloc (2 , ZSTR_LEN (unquoted ), 3 + (use_national_character_set ? 1 : 0 ), false);
329
+ char * quoted = ZSTR_VAL (quoted_str );
330
330
331
331
if (use_national_character_set ) {
332
332
quotedlen = mysql_real_escape_string_quote (H -> server , quoted + 2 , ZSTR_VAL (unquoted ), ZSTR_LEN (unquoted ), '\'' );
@@ -343,8 +343,8 @@ static zend_string* mysql_handle_quoter(pdo_dbh_t *dbh, const zend_string *unquo
343
343
quoted [++ quotedlen ] = '\0' ;
344
344
PDO_DBG_INF_FMT ("quoted=%.*s" , (int )quotedlen , quoted );
345
345
346
- quoted_str = zend_string_init ( quoted , quotedlen , 0 );
347
- efree ( quoted );
346
+ quoted_str = zend_string_truncate ( quoted_str , quotedlen , false );
347
+
348
348
PDO_DBG_RETURN (quoted_str );
349
349
}
350
350
/* }}} */
0 commit comments