summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Kehrig <kehrigan@gmail.com>2014-02-24 12:01:58 -0500
committerStanislav Malyshev <stas@php.net>2014-04-20 16:49:15 -0700
commit186ffcb72c982b0235761bdd6388ff1c36d79568 (patch)
treebaf0ecc75792f3f9d7d5cad1577bb2d81512a392
parent5272d6c896b955d85a527f5a83da3ec8b434bb5a (diff)
downloadphp-git-186ffcb72c982b0235761bdd6388ff1c36d79568.tar.gz
Fix #50444: PDO-ODBC changes for 64-bit
This bug is also referenced in [#61777](https://bugs.php.net/bug.php?id=61777) and is still present in the latest stable release of the 5.5 branch. I see two tickets exist for this problem already, and I'm just submitting these changes via github as a reminder that this is a serious problem for anyone using PDO_ODBC on the x64 builds.
-rw-r--r--NEWS3
-rw-r--r--ext/pdo_odbc/odbc_stmt.c4
-rw-r--r--ext/pdo_odbc/php_pdo_odbc_int.h2
3 files changed, 6 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index a1427512c2..d1de079b67 100644
--- a/NEWS
+++ b/NEWS
@@ -61,6 +61,9 @@ PHP NEWS
. Fixed bug #66604 ('pdo/php_pdo_error.h' not copied to the include dir).
(Matteo)
+- PDO-ODBC:
+ . Fixed bug #50444 (PDO-ODBC changes for 64-bit).
+
- SQLite:
. Fixed bug #66967 (Updated bundled libsqlite to 3.8.4.3). (Anatol)
diff --git a/ext/pdo_odbc/odbc_stmt.c b/ext/pdo_odbc/odbc_stmt.c
index 8b0ccf34e6..1d275cd654 100644
--- a/ext/pdo_odbc/odbc_stmt.c
+++ b/ext/pdo_odbc/odbc_stmt.c
@@ -279,7 +279,7 @@ static int odbc_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *p
pdo_odbc_stmt *S = (pdo_odbc_stmt*)stmt->driver_data;
RETCODE rc;
SWORD sqltype = 0, ctype = 0, scale = 0, nullable = 0;
- UDWORD precision = 0;
+ SQLULEN precision = 0;
pdo_odbc_param *P;
/* we're only interested in parameters for prepared SQL right now */
@@ -551,7 +551,7 @@ static int odbc_stmt_describe(pdo_stmt_t *stmt, int colno TSRMLS_DC)
struct pdo_column_data *col = &stmt->columns[colno];
RETCODE rc;
SWORD colnamelen;
- SDWORD colsize;
+ SQLULEN colsize;
SQLLEN displaysize;
rc = SQLDescribeCol(S->stmt, colno+1, S->cols[colno].colname,
diff --git a/ext/pdo_odbc/php_pdo_odbc_int.h b/ext/pdo_odbc/php_pdo_odbc_int.h
index 87b2f9100d..5e42951f86 100644
--- a/ext/pdo_odbc/php_pdo_odbc_int.h
+++ b/ext/pdo_odbc/php_pdo_odbc_int.h
@@ -157,7 +157,7 @@ typedef struct {
} pdo_odbc_stmt;
typedef struct {
- SQLINTEGER len;
+ SQLLEN len;
SQLSMALLINT paramtype;
char *outbuf;
unsigned is_unicode:1;