[PHP-CVS] cvs: php-src(PHP_4_4) /ext/pgsql pgsql.c
tony2001Thu Jan 11 16:47:32 2007 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/pgsql pgsql.c Log: MFH http://cvs.php.net/viewvc.cgi/php-src/ext/pgsql/pgsql.c?r1=1.244.2.40.2.6r2=1.244.2.40.2.7diff_format=u Index: php-src/ext/pgsql/pgsql.c diff -u php-src/ext/pgsql/pgsql.c:1.244.2.40.2.6 php-src/ext/pgsql/pgsql.c:1.244.2.40.2.7 --- php-src/ext/pgsql/pgsql.c:1.244.2.40.2.6Mon Jan 1 09:46:46 2007 +++ php-src/ext/pgsql/pgsql.c Thu Jan 11 16:47:32 2007 @@ -19,7 +19,7 @@ +--+ */ -/* $Id: pgsql.c,v 1.244.2.40.2.6 2007/01/01 09:46:46 sebastian Exp $ */ +/* $Id: pgsql.c,v 1.244.2.40.2.7 2007/01/11 16:47:32 tony2001 Exp $ */ #include stdlib.h @@ -216,7 +216,7 @@ static int le_link, le_plink, le_result, le_lofp, le_string; -ZEND_DECLARE_MODULE_GLOBALS(pgsql); +ZEND_DECLARE_MODULE_GLOBALS(pgsql) /* {{{ _php_pgsql_trim_message */ static char * _php_pgsql_trim_message(const char *message, int *len) @@ -2658,10 +2658,11 @@ zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(pg_rows), pos); while (zend_hash_get_current_data_ex(Z_ARRVAL_P(pg_rows), (void **) tmp, pos) == SUCCESS) { convert_to_string_ex(tmp); - query = (char *)emalloc(Z_STRLEN_PP(tmp) +2); - strcpy(query, Z_STRVAL_PP(tmp)); - if(*(query+Z_STRLEN_PP(tmp)-1) != '\n') - strcat(query, \n); + query = (char *)emalloc(Z_STRLEN_PP(tmp) + 2); + strlcpy(query, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp) + 2); + if(Z_STRLEN_PP(tmp) 0 *(query + Z_STRLEN_PP(tmp) - 1) != '\n') { + strlcat(query, \n, Z_STRLEN_PP(tmp) + 2); + } if (PQputline(pgsql, query)) { efree(query); PHP_PQ_ERROR(copy failed: %s, pgsql); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/pgsql pgsql.c
iliaa Thu Dec 28 15:21:41 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/pgsql pgsql.c Log: MFH: Added buffer length checks http://cvs.php.net/viewvc.cgi/php-src/ext/pgsql/pgsql.c?r1=1.244.2.40.2.3r2=1.244.2.40.2.4diff_format=u Index: php-src/ext/pgsql/pgsql.c diff -u php-src/ext/pgsql/pgsql.c:1.244.2.40.2.3 php-src/ext/pgsql/pgsql.c:1.244.2.40.2.4 --- php-src/ext/pgsql/pgsql.c:1.244.2.40.2.3Sun Jan 1 13:46:56 2006 +++ php-src/ext/pgsql/pgsql.c Thu Dec 28 15:21:41 2006 @@ -19,7 +19,7 @@ +--+ */ -/* $Id: pgsql.c,v 1.244.2.40.2.3 2006/01/01 13:46:56 sniper Exp $ */ +/* $Id: pgsql.c,v 1.244.2.40.2.4 2006/12/28 15:21:41 iliaa Exp $ */ #include stdlib.h @@ -4285,7 +4285,7 @@ smart_str_append_long(querystr, Z_LVAL_PP(val)); break; case IS_DOUBLE: - smart_str_appendl(querystr, buf, sprintf(buf, %f, Z_DVAL_PP(val))); + smart_str_appendl(querystr, buf, MIN(snprintf(buf, sizeof(buf), %f, Z_DVAL_PP(val)), sizeof(buf)-1)); break; default: /* should not happen */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/pgsql pgsql.c /ext/pgsql/tests 80_bug32223b.phpt
helly Mon Nov 7 08:01:37 2005 EDT Added files: (Branch: PHP_4_4) /php-src/ext/pgsql/tests80_bug32223b.phpt Modified files: /php-src/ext/pgsql pgsql.c Log: - MFH Fix Bug #32223 weird behaviour of pg_last_notice http://cvs.php.net/diff.php/php-src/ext/pgsql/pgsql.c?r1=1.244.2.40.2.1r2=1.244.2.40.2.2ty=u Index: php-src/ext/pgsql/pgsql.c diff -u php-src/ext/pgsql/pgsql.c:1.244.2.40.2.1 php-src/ext/pgsql/pgsql.c:1.244.2.40.2.2 --- php-src/ext/pgsql/pgsql.c:1.244.2.40.2.1Tue Jul 5 08:50:03 2005 +++ php-src/ext/pgsql/pgsql.c Mon Nov 7 08:01:36 2005 @@ -19,7 +19,7 @@ +--+ */ -/* $Id: pgsql.c,v 1.244.2.40.2.1 2005/07/05 12:50:03 derick Exp $ */ +/* $Id: pgsql.c,v 1.244.2.40.2.2 2005/11/07 13:01:36 helly Exp $ */ #include stdlib.h @@ -310,7 +310,7 @@ if (PGG(log_notices)) { php_error_docref(NULL TSRMLS_CC, E_NOTICE, %s, notice-message); } - zend_hash_index_update(PGG(notices), *(int *)resource_id, (void **)notice, sizeof(php_pgsql_notice *), NULL); + zend_hash_index_update(PGG(notices), (int)resource_id, (void **)notice, sizeof(php_pgsql_notice *), NULL); } } /* }}} */ @@ -694,7 +694,7 @@ } /* set notice processer */ if (! PGG(ignore_notices) Z_TYPE_P(return_value) == IS_RESOURCE) { - PQsetNoticeProcessor(pgsql, _php_pgsql_notice_handler, (void *)Z_RESVAL_P(return_value)); + PQsetNoticeProcessor(pgsql, _php_pgsql_notice_handler, (void *)Z_RESVAL_P(return_value)); } php_pgsql_set_default_link(Z_LVAL_P(return_value) TSRMLS_CC); http://cvs.php.net/co.php/php-src/ext/pgsql/tests/80_bug32223b.phpt?r=1.1p=1 Index: php-src/ext/pgsql/tests/80_bug32223b.phpt +++ php-src/ext/pgsql/tests/80_bug32223b.phpt --TEST-- Bug #32223 (weird behaviour of pg_last_notice using define) --SKIPIF-- ?php require_once('skipif.inc'); @pg_query($conn, CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler LANCOMPILER 'PL/pgSQL'); $res = @pg_query($conn, CREATE OR REPLACE FUNCTION test_notice() RETURNS boolean AS ' begin RAISE NOTICE ''1''; return ''f''; end; ' LANGUAGE plpgsql;); if (!$res) die('skip PLPGSQL not available'); ? --FILE-- ?php require('config.inc'); define ('dbh', pg_connect($conn_str)); //$dbh = @pg_connect($conn_str); if (!dbh) { die (Could not connect to the server); } //@pg_query(dbh, CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler LANCOMPILER 'PL/pgSQL'); $res = pg_query(dbh, CREATE OR REPLACE FUNCTION test_notice() RETURNS boolean AS ' begin RAISE NOTICE ''1''; return ''f''; end; ' LANGUAGE plpgsql;); function tester() { $res = pg_query(dbh, 'SELECT test_notice()'); $row = pg_fetch_row($res, 0); var_dump($row); pg_free_result($res); if ($row[0] == 'f') { var_dump(pg_last_notice(dbh)); } } tester(); pg_close(dbh); ? ===DONE=== --EXPECTF-- array(1) { [0]= string(1) f } string(14) NOTICE: 1 ===DONE=== -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php