From: Antony Dovgal Date: Thu, 18 Jan 2007 15:54:45 +0000 (+0000) Subject: use snprintf() X-Git-Tag: RELEASE_1_0_0RC1~227 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f011615c86ebbb8a9b8de70fd7e5b45a91ed97db;p=php use snprintf() --- diff --git a/ext/pdo_firebird/firebird_driver.c b/ext/pdo_firebird/firebird_driver.c index 803192545d..7e65a880a7 100644 --- a/ext/pdo_firebird/firebird_driver.c +++ b/ext/pdo_firebird/firebird_driver.c @@ -602,6 +602,8 @@ static int pdo_firebird_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRM { "role", NULL, 0 } }; int i, ret = 0; + short buf_len = 256, dpb_len; + pdo_firebird_db_handle *H = dbh->driver_data = pecalloc(1,sizeof(*H),dbh->is_persistent); php_pdo_parse_data_source(dbh->data_source, dbh->data_source_len, vars, 3); @@ -616,9 +618,11 @@ static int pdo_firebird_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRM /* loop through all the provided arguments and set dpb fields accordingly */ for (i = 0; i < sizeof(dpb_flags); ++i) { - if (dpb_values[i]) { - dpb += sprintf(dpb, "%c%c%s", dpb_flags[i], (unsigned char)strlen(dpb_values[i]), + if (dpb_values[i] && buf_len > 0) { + dpb_len = snprintf(dpb, buf_len, "%c%c%s", dpb_flags[i], (unsigned char)strlen(dpb_values[i]), dpb_values[i]); + dpb += dpb_len; + buf_len -= dpb_len; } }