diff options
author | Anatol Belski <ab@php.net> | 2015-02-06 19:00:27 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2015-02-06 19:00:27 +0100 |
commit | a41aa46759d20e23af92df00b917ca66c6102412 (patch) | |
tree | 42362ef936b056a2ad7493a531a67ff2b29f469e /ext/odbc | |
parent | 9ef0c39b2b9e1a8212a953aee9deee26f0978ce8 (diff) | |
download | php-git-a41aa46759d20e23af92df00b917ca66c6102412.tar.gz |
Fixed bug #68964 Allowed memory size exhausted with odbc_exec
This is done in two steps:
- the ODBCVER has to be rased to 0x0300 which corresponds to Sql
Server 9, otherwise the client will not recognize several SQL
datatypes
- additionally the config scripts was tweaked so then ODBCVER
can be overridden, that still allows enabling compatibility
with lower versions
Bug #67437 might be fixed by this as well.
Diffstat (limited to 'ext/odbc')
-rw-r--r-- | ext/odbc/config.m4 | 13 | ||||
-rw-r--r-- | ext/odbc/config.w32 | 8 | ||||
-rw-r--r-- | ext/odbc/php_odbc.h | 1 | ||||
-rw-r--r-- | ext/odbc/php_odbc_includes.h | 6 |
4 files changed, 20 insertions, 8 deletions
diff --git a/ext/odbc/config.m4 b/ext/odbc/config.m4 index eaed212cd7..f79c4616db 100644 --- a/ext/odbc/config.m4 +++ b/ext/odbc/config.m4 @@ -490,6 +490,19 @@ PHP_ARG_WITH(dbmaker,, fi fi +PHP_ARG_WITH(odbcver,, +[ --with-odbcver[=HEX] Force support for the passed ODBC version. A hex number is expected, default 0x0300. + Use the special value of 0 to prevent an explicit ODBCVER to be defined. ], 0x0300) + +if test "no" != "$PHP_ODBCVER"; then + if test "$PHP_ODBCVER" != "0"; then + AC_DEFINE_UNQUOTED(ODBCVER, $PHP_ODBCVER, [ The highest supported ODBC version ]) + fi +else + AC_DEFINE(ODBCVER, 0x300, [ The highest supported ODBC version ]) +fi + + dnl dnl Extension setup dnl diff --git a/ext/odbc/config.w32 b/ext/odbc/config.w32 index 2395ddcb76..70a541f83b 100644 --- a/ext/odbc/config.w32 +++ b/ext/odbc/config.w32 @@ -2,6 +2,7 @@ // vim:ft=javascript ARG_ENABLE("odbc", "ODBC support", "yes"); +ARG_WITH("odbcver", "Force support for the passed ODBC version. A hex number is expected, default 0x0300. Use the special value of 0 to prevent an explicit ODBCVER to be defined."); if (PHP_ODBC == "yes") { if (CHECK_LIB("odbc32.lib", "odbc") && CHECK_LIB("odbccp32.lib", "odbc") @@ -9,8 +10,13 @@ if (PHP_ODBC == "yes") { && CHECK_HEADER_ADD_INCLUDE("sqlext.h", "CFLAGS_ODBC")) { EXTENSION("odbc", "php_odbc.c"); AC_DEFINE("HAVE_UODBC", 1, "ODBC support"); + if ("no" == PHP_ODBCVER) { + AC_DEFINE("ODBCVER", "0x0300", "The highest supported ODBC version", false); + } else if ("0" != PHP_ODBCVER) { + AC_DEFINE("ODBCVER", PHP_ODBCVER, "The highest supported ODBC version", false); + } } else { WARNING("odbc support can't be enabled, libraries or header are missing (SDK)") PHP_ODBC = "no" } -}
\ No newline at end of file +} diff --git a/ext/odbc/php_odbc.h b/ext/odbc/php_odbc.h index b4d279c20c..dca14966f7 100644 --- a/ext/odbc/php_odbc.h +++ b/ext/odbc/php_odbc.h @@ -24,7 +24,6 @@ #define PHP_ODBC_H #if HAVE_UODBC -#define ODBCVER 0x0250 #ifdef ZTS #include "TSRM.h" diff --git a/ext/odbc/php_odbc_includes.h b/ext/odbc/php_odbc_includes.h index 84c4afc2b6..15bb737a8b 100644 --- a/ext/odbc/php_odbc_includes.h +++ b/ext/odbc/php_odbc_includes.h @@ -25,12 +25,6 @@ #if HAVE_UODBC -#define ODBCVER 0x0250 -/*#ifndef MSVC5 -#define FAR -#endif -*/ - /* checking in the same order as in configure.in */ #if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35) /* Solid Server */ |