cvs: php4 /ext/fbsql php_fbsql.c
| From: | Frank M. Kromann | Date: | Mon, 15 Oct 2001 17:33:15 +0000 |
| Subject: | cvs: php4 /ext/fbsql php_fbsql.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-7817@lists.php.net to get a copy of this message | ||
fmk Mon Oct 15 13:33:15 2001 EDT
Modified files:
/php4/ext/fbsql php_fbsql.c
Log:
Fixing problem with indirect blobs
Index: php4/ext/fbsql/php_fbsql.c
diff -u php4/ext/fbsql/php_fbsql.c:1.55 php4/ext/fbsql/php_fbsql.c:1.56
--- php4/ext/fbsql/php_fbsql.c:1.55 Thu Oct 11 19:32:45 2001
+++ php4/ext/fbsql/php_fbsql.c Mon Oct 15 13:33:14 2001
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_fbsql.c,v 1.55 2001/10/11 23:32:45 ssb Exp $ */
+/* $Id: php_fbsql.c,v 1.56 2001/10/15 17:33:14 fmk Exp $ */
/* TODO:
*
@@ -932,12 +932,13 @@
}
ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link",
le_link, le_plink);
+ convert_to_string_ex(lob_data);
switch (lob_type) {
case 0 : // BLOB
- lobHandle = fbcdcWriteBLOB(phpLink->connection, Z_STRVAL_PP(lob_data),
Z_STRLEN_PP(lob_data));
+ lobHandle = fbcdcWriteBLOB(phpLink->connection, Z_STRVAL_PP(lob_data),
Z_STRLEN_PP(lob_data));
break;
case 1 : // CLOB
- lobHandle = fbcdcWriteCLOB(phpLink->connection, Z_STRVAL_PP(lob_data));
+ lobHandle = fbcdcWriteCLOB(phpLink->connection, Z_STRVAL_PP(lob_data));
break;
}
if (lobHandle) {
@@ -2200,22 +2201,20 @@
{ // Direct
*length = ((FBCBlobDirect *)data)->blobSize;
- *value = emalloc(*length + 1);
- strncpy(*value, (char *)((FBCBlobDirect *)data)->blobData, *length);
+ *value = estrndup((char *)((FBCBlobDirect *)data)->blobData, *length);
}
else
{
FBCBlobHandle *lobHandle;
- char *handle = (char *)(&((unsigned char*)data)[1]);
-
+ unsigned char *bytes = (unsigned char *)data;
+ char *handle = (char *)(&bytes[1]);
lobHandle = fbcbhInitWithHandle(handle);
*length = fbcbhBlobSize(lobHandle);
- *value = emalloc(*length + 1);
if (dtc == FB_BLOB)
- strncpy(*value, (char *)fbcdcReadBLOB(result->link->connection, lobHandle), *length);
+ *value = estrndup((char *)fbcdcReadBLOB(result->link->connection, lobHandle), *length);
else
- strncpy(*value, (char *)fbcdcReadCLOB(result->link->connection, lobHandle), *length);
+ *value = estrndup((char *)fbcdcReadCLOB(result->link->connection, lobHandle), *length);
fbcbhRelease(lobHandle);
}
}