[sr-dev] [tracker] Comment added: db_unixodbc cannot load more than 1024 bytes from a database field (patch supplied) (Attachment added)

sip-router bugtracker at sip-router.org
Thu Jul 31 21:34:04 CEST 2014


THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.

The following task has a new comment added:

FS#443 - db_unixodbc cannot load more than 1024 bytes from a database field (patch supplied)
User who did this - Alex Villacis Lasso (a_villacis)

----------
I have made a new version of the patch:

* db_unixodbc_load_cell() now returns an error code that is checked in the recordset loops
* With the previous patch, two additional problems became apparent. First, BLOB columns are read with SQL_C_CHAR, resulting in an unwanted conversion to an hexadecimal string. Second, even if the database column is converted to a TEXT datatype, the driver still considers it a DB1_BLOB. This results in all length calculations including the extra NULL byte at the end of the string. This extra byte appears in XCAP responses and breaks at least Jitsi. Both problems are now solved by passing an additional parameter to db_unixodbc_load_cell() telling what column type is supposed to be read. Also, the buflen field is trusted to have the actual value length, and this is used to convert the row instead of a strlen().
* In db_unixodbc_list_insert(), memcpy is used instead of strncpy, in order to cope with fields with embedded nulls from BLOB columns. Also, the method was shortened by factoring out commonalities between the cases of inserting a first node vs inserting a non-first node.


----------

One or more files have been attached.

More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=443#comment1569

You are receiving this message because you have requested it from the Flyspray bugtracking system.  If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.



More information about the sr-dev mailing list