cvs: php4 /ext/pgsql pgsql.c
| From: | Yasuo Ohgaki | Date: | Sat, 20 Apr 2002 04:17:17 +0000 |
| Subject: | cvs: php4 /ext/pgsql pgsql.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-11257@lists.php.net to get a copy of this message | ||
yohgaki Sat Apr 20 00:17:17 2002 EDT
Modified files:
/php4/ext/pgsql pgsql.c
Log:
Added comment to fix large OID value handling later.
Fixed wrong conversion specifiers.
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.184 php4/ext/pgsql/pgsql.c:1.185
--- php4/ext/pgsql/pgsql.c:1.184 Fri Apr 19 23:50:21 2002
+++ php4/ext/pgsql/pgsql.c Sat Apr 20 00:17:17 2002
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql.c,v 1.184 2002/04/20 03:50:21 yohgaki Exp $ */
+/* $Id: pgsql.c,v 1.185 2002/04/20 04:17:17 yohgaki Exp $ */
#include <stdlib.h>
@@ -1045,7 +1045,7 @@
char *ret=NULL;
/* try to lookup the type in the resource list */
- snprintf(hashed_oid_key,31,"pgsql_oid_%ld", oid);
+ snprintf(hashed_oid_key,31,"pgsql_oid_%u", oid);
hashed_oid_key[31]=0;
if (zend_hash_find(list,hashed_oid_key,strlen(hashed_oid_key)+1,(void **)
&field_type)==SUCCESS) {
@@ -1495,7 +1495,7 @@
RETURN_FALSE;
} else if (oid > LONG_MAX) {
oid_str = (char *)emalloc(PGSQL_MAX_LENGTH_OF_LONG+1);
- sprintf(oid_str, "%ld", oid);
+ sprintf(oid_str, "%u", oid);
RETURN_STRING(oid_str, 0);
}
RETURN_LONG((long)oid);
@@ -1638,7 +1638,7 @@
}
if (pgsql_oid > LONG_MAX) {
oid_str = (char *)emalloc(PGSQL_MAX_LENGTH_OF_LONG+1);
- sprintf(oid_str, "%ld", pgsql_oid);
+ sprintf(oid_str, "%u", pgsql_oid);
RETURN_STRING(oid_str, 0);
}
RETURN_LONG((long)pgsql_oid);
@@ -1654,6 +1654,7 @@
Oid pgsql_oid;
int id = -1;
+ /* FIXME: Does not work when OID is larger than LONG_MAX */
switch(ZEND_NUM_ARGS()) {
case 1:
if (zend_get_parameters_ex(1, &oid)==FAILURE) {
@@ -1679,8 +1680,8 @@
ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link,
le_plink);
if (lo_unlink(pgsql, pgsql_oid) == -1) {
- php_error(E_WARNING, "%s() unable to delete PostgreSQL large object %d",
- get_active_function_name(TSRMLS_C), (int) pgsql_oid);
+ php_error(E_WARNING, "%s() unable to delete PostgreSQL large object %u",
+ get_active_function_name(TSRMLS_C), pgsql_oid);
RETURN_FALSE;
}
RETURN_TRUE;
@@ -1699,6 +1700,7 @@
char *mode_string=NULL;
pgLofp *pgsql_lofp;
+ /* FIXME: Does not work when OID is larger than LONG_MAX */
switch(ZEND_NUM_ARGS()) {
case 2:
if (zend_get_parameters_ex(2, &oid, &mode)==FAILURE) {
@@ -1964,7 +1966,7 @@
}
if (oid > LONG_MAX) {
oid_str = (char *)emalloc(PGSQL_MAX_LENGTH_OF_LONG+1);
- sprintf(oid_str, "%ld", oid);
+ sprintf(oid_str, "%u", oid);
RETURN_STRING(oid_str, 0);
}
RETURN_LONG((long)oid);
@@ -1981,7 +1983,8 @@
int argc = ZEND_NUM_ARGS();
Oid oid;
PGconn *pgsql;
-
+
+ /* FIXME: Does not work when OID is larger than LONG_MAX */
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc TSRMLS_CC,
"rls", &pgsql_link, &oid_id, &file_out, &name_len) == SUCCESS) {
;