[PHP-CVS] cvs: php-src(PHP_4_4) /ext/pgsql pgsql.c

2007-01-11 Thread Antony Dovgal
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

2006-12-28 Thread Ilia Alshanetsky
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

2005-11-07 Thread Marcus Boerger
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