Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:42066 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 25796 invoked from network); 28 Nov 2008 05:15:31 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Nov 2008 05:15:31 -0000 X-Host-Fingerprint: 62.75.148.228 vs148228.vserver.de Received: from [62.75.148.228] ([62.75.148.228:27652] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id AD/EA-65511-37E7F294 for ; Fri, 28 Nov 2008 00:15:31 -0500 Message-ID: To: internals@lists.php.net Date: Fri, 28 Nov 2008 06:15:25 +0100 User-Agent: Thunderbird 2.0.0.18 (Windows/20081105) MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Posted-By: 62.75.148.228 Subject: Bug in interbase.c "invalid BLOB ID" From: BenjaminSchwarze@TheUnknownOnes.net (Benjamin Schwarze) Hi! As some other users recognized, there is a bug in the implementation of the function "_php_ibase_quad_to_string". (imho since version 5.2.1) The line "spprintf(&result, BLOB_ID_LEN+1, "0x%0*" LL_MASK "x", 16, *(ISC_UINT64*)(void *) &qd);" doesnt work as estimated. The result stored inside qd isnt the value convertet from the string, but something else. Normally this should work, but it doesnt. One possible solution is, to change the line into "spprintf(&result, BLOB_ID_LEN+1, "0x%0*x%0*x", 8, qd.gds_quad_low, 8, qd.gds_quad_high);" Of course, there might be a smarter way, but this solution worked for me. My system is a Fedora Core 8 64bit.