From 204c32b7605176f996411487783cde98b57c3cb7 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Thu, 30 Nov 2006 16:21:36 +0000 Subject: [PATCH] MFB: Thread safety fixes. --- ext/interbase/ibase_query.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ext/interbase/ibase_query.c b/ext/interbase/ibase_query.c index 52b6d01e04..801c60d20a 100644 --- a/ext/interbase/ibase_query.c +++ b/ext/interbase/ibase_query.c @@ -669,14 +669,13 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval ***b_vars, BIND_BUF *buf, /* {{{ var->sqldata = (void*)&buf[i].val; switch (var->sqltype & ~1) { - struct tm t; + struct tm *t, tmbuf; case SQL_TIMESTAMP: case SQL_TYPE_DATE: case SQL_TYPE_TIME: if (Z_TYPE_P(b_var) == IS_LONG) { - /* insert timestamp directly */ - t = *gmtime(&Z_LVAL_P(b_var)); + t = php_gmtime_r(&Z_LVAL_P(b_var), &tmbuf); } else { #ifdef HAVE_STRPTIME char *format = INI_STR("ibase.timestampformat"); @@ -690,7 +689,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval ***b_vars, BIND_BUF *buf, /* {{{ case SQL_TYPE_TIME: format = INI_STR("ibase.timeformat"); } - if (! strptime(Z_STRVAL_P(b_var), format, &t)) { + if (!strptime(Z_STRVAL_P(b_var), format, t)) { /* strptime() cannot handle it, so let IB have a try */ break; } @@ -701,13 +700,13 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval ***b_vars, BIND_BUF *buf, /* {{{ switch (var->sqltype & ~1) { default: /* == case SQL_TIMESTAMP */ - isc_encode_timestamp(&t, &buf[i].val.tsval); + isc_encode_timestamp(t, &buf[i].val.tsval); break; case SQL_TYPE_DATE: - isc_encode_sql_date(&t, &buf[i].val.dtval); + isc_encode_sql_date(t, &buf[i].val.dtval); break; case SQL_TYPE_TIME: - isc_encode_sql_time(&t, &buf[i].val.tmval); + isc_encode_sql_time(t, &buf[i].val.tmval); break; } continue; -- 2.40.0