Tony, we need to be careful here since snprintf() won't return the actual length of the string, but rather the length it would've been had there been enough space in the buffer. It *may* be fine in this context, but the code needs to be reviewed carefully.

On 18-Jan-07, at 10:54 AM, Antony Dovgal wrote:

tony2001                Thu Jan 18 15:54:19 2007 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/interbase      interbase.c
  Log:
  MFH


http://cvs.php.net/viewvc.cgi/php-src/ext/interbase/interbase.c? r1=1.225.2.4.2.3&r2=1.225.2.4.2.4&diff_format=u
Index: php-src/ext/interbase/interbase.c
diff -u php-src/ext/interbase/interbase.c:1.225.2.4.2.3 php-src/ext/ interbase/interbase.c:1.225.2.4.2.4 --- php-src/ext/interbase/interbase.c:1.225.2.4.2.3 Thu Jan 18 15:41:01 2007
+++ php-src/ext/interbase/interbase.c   Thu Jan 18 15:54:19 2007
@@ -18,7 +18,7 @@
+--------------------------------------------------------------------- -+
  */

-/* $Id: interbase.c,v 1.225.2.4.2.3 2007/01/18 15:41:01 tony2001 Exp $ */ +/* $Id: interbase.c,v 1.225.2.4.2.4 2007/01/18 15:54:19 tony2001 Exp $ */

 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -595,19 +595,19 @@

        for (i = 0; i < sizeof(dpb_args); ++i) {
                if (dpb_args[i] && args[i] && len[i] && buf_len > 0) {
- dpb_len += snprintf(dpb, buf_len, "%c%c%s", dpb_args[i], (unsigned char)len[i],args[i]); + dpb_len = snprintf(dpb, buf_len, "%c%c%s", dpb_args[i], (unsigned char)len[i],args[i]);
                        dpb += dpb_len;
                        buf_len -= dpb_len;
                }
        }
        if (largs[BUF] && buf_len > 0) {
-               dpb_len += snprintf(dpb, buf_len, "%c\2%c%c", 
isc_dpb_num_buffers,
+               dpb_len = snprintf(dpb, buf_len, "%c\2%c%c", 
isc_dpb_num_buffers,
                        (char)(largs[BUF] >> 8), (char)(largs[BUF] & 0xff));
                dpb += dpb_len;
                buf_len -= dpb_len;
        }
        if (largs[SYNC] && buf_len > 0) {
- dpb_len += sprintf(dpb, buf_len, "%c\1%c", isc_dpb_force_write, largs[SYNC] == isc_spb_prp_wm_sync ? 1 : 0); + dpb_len = sprintf(dpb, buf_len, "%c\1%c", isc_dpb_force_write, largs[SYNC] == isc_spb_prp_wm_sync ? 1 : 0);
                dpb += dpb_len;
                buf_len -= dpb_len;
        }

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Ilia Alshanetsky

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to