diff options
| author | Ard Biesheuvel <abies@php.net> | 2004-01-12 19:47:28 +0000 |
|---|---|---|
| committer | Ard Biesheuvel <abies@php.net> | 2004-01-12 19:47:28 +0000 |
| commit | 961f398db56bd9a317c8461b9b5ea457c319365d (patch) | |
| tree | 7e9195a77fb699533c8bced7ec872b9a051a3d48 | |
| parent | a116666bc41c696093eb85541b8a111cd1d61d69 (diff) | |
| download | php-git-961f398db56bd9a317c8461b9b5ea457c319365d.tar.gz | |
Added sanity check on ibase_[p]connect() dialect argument (fixes obscure unregistered bug)
| -rw-r--r-- | ext/interbase/interbase.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/interbase/interbase.c b/ext/interbase/interbase.c index b9438403a4..ddee767da5 100644 --- a/ext/interbase/interbase.c +++ b/ext/interbase/interbase.c @@ -940,7 +940,10 @@ static void _php_ibase_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) ib_link = (ibase_db_link *) malloc(sizeof(ibase_db_link)); ib_link->handle = db_handle; - ib_link->dialect = (ib_dialect ? (unsigned short) strtoul(ib_dialect, NULL, 10) : SQL_DIALECT_CURRENT); + if (ib_dialect) { + unsigned short d = (unsigned short)strtoul(ib_dialect, NULL, 10); + ib_link->dialect = (d ? d : SQL_DIALECT_CURRENT); + } ib_link->tr_list = NULL; /* hash it up */ @@ -1002,7 +1005,10 @@ static void _php_ibase_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) ib_link = (ibase_db_link *) emalloc(sizeof(ibase_db_link)); ib_link->handle = db_handle; - ib_link->dialect = (ib_dialect ? (unsigned short) strtoul(ib_dialect, NULL, 10) : SQL_DIALECT_CURRENT); + if (ib_dialect) { + unsigned short d = (unsigned short)strtoul(ib_dialect, NULL, 10); + ib_link->dialect = (d ? d : SQL_DIALECT_CURRENT); + } ib_link->tr_list = NULL; ZEND_REGISTER_RESOURCE(return_value, ib_link, le_link); |
