From: Andi Gutmans Date: Wed, 2 May 2001 22:31:19 +0000 (+0000) Subject: - Commit interbase fixes X-Git-Tag: php-4.0.6RC1~180 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f1c801ac89b04a1611dd8c42f6ab995cb59f07bc;p=php - Commit interbase fixes --- diff --git a/ext/interbase/interbase.c b/ext/interbase/interbase.c index 64a3324a78..06d1b3e974 100644 --- a/ext/interbase/interbase.c +++ b/ext/interbase/interbase.c @@ -1727,15 +1727,10 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca /* fallout */ case SQL_TEXT: val->value.str.val = (char *)emalloc(sizeof(char)*(len+1)); - strncpy(val->value.str.val, data, len); + memcpy(val->value.str.val, data, len); + val->value.str.val[len] = '\0'; if (PG(magic_quotes_runtime)) { - /* - char *tmp = val->value.str.val; - */ - val->value.str.val = php_addslashes(val->value.str.val, len, &len, 0); - /* - efree(tmp); - */ + val->value.str.val = php_addslashes(val->value.str.val, len, &len, 1); } val->type = IS_STRING; val->value.str.len = len; @@ -1745,8 +1740,9 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca int j, f = 1; float n = (float) *(long *)(data); - for (j = 0; j < -scale; j++) + for (j = 0; j < -scale; j++) { f *= 10; + } val->type = IS_STRING; val->value.str.len = sprintf(string_data, "%.*f", -scale, n / f); val->value.str.val = estrdup(string_data); @@ -1779,8 +1775,8 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca #ifdef SQL_INT64 case SQL_INT64: val->type = IS_STRING; - val->value.str.len = sprintf(string_data, "%Ld.%Ld", - (ISC_INT64) (*((ISC_INT64 *)data) / (int) pow(10.0, (double) -scale)), + val->value.str.len = sprintf(string_data, "%Ld.%0*Ld", + (ISC_INT64) (*((ISC_INT64 *)data) / (int) pow(10.0, (double) -scale)), -scale, (ISC_INT64) abs((int) (*((ISC_INT64 *)data) % (int) pow(10.0, (double) -scale)))); val->value.str.val = estrdup(string_data); break;