diff -pruN 7.2.9-1/appveyor/build_task.bat 7.2.11-3/appveyor/build_task.bat
--- 7.2.9-1/appveyor/build_task.bat	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/appveyor/build_task.bat	2018-10-09 15:09:37.000000000 +0000
@@ -10,6 +10,18 @@ if "%APPVEYOR%" equ "True" rmdir /s /q C
 if %errorlevel% neq 0 exit /b 3
 if "%APPVEYOR%" equ "True" rmdir /s /q C:\msys64 >NUL 2>NUL
 if %errorlevel% neq 0 exit /b 3
+if "%APPVEYOR%" equ "True" rmdir /s /q c:\OpenSSL-Win32 >NUL 2>NUL
+if %errorlevel% neq 0 exit /b 3
+if "%APPVEYOR%" equ "True" rmdir /s /q c:\OpenSSL-Win64 >NUL 2>NUL
+if %errorlevel% neq 0 exit /b 3
+if "%APPVEYOR%" equ "True" rmdir /s /q c:\OpenSSL-v11-Win32 >NUL 2>NUL
+if %errorlevel% neq 0 exit /b 3
+if "%APPVEYOR%" equ "True" rmdir /s /q c:\OpenSSL-v11-Win64 >NUL 2>NUL
+if %errorlevel% neq 0 exit /b 3
+if "%APPVEYOR%" equ "True" del /f /q C:\Windows\System32\libcrypto-1_1-x64.dll >NUL 2>NUL
+if %errorlevel% neq 0 exit /b 3
+if "%APPVEYOR%" equ "True" del /f /q C:\Windows\System32\libssl-1_1-x64.dll >NUL 2>NUL
+if %errorlevel% neq 0 exit /b 3
 
 cd /D %APPVEYOR_BUILD_FOLDER%
 if %errorlevel% neq 0 exit /b 3
diff -pruN 7.2.9-1/.appveyor.yml 7.2.11-3/.appveyor.yml
--- 7.2.9-1/.appveyor.yml	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/.appveyor.yml	2018-10-09 15:09:37.000000000 +0000
@@ -17,7 +17,7 @@ environment:
         PHP_BUILD_CACHE_BASE_DIR: c:\build-cache  
         PHP_BUILD_OBJ_DIR: c:\obj
         PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk
-        PHP_BUILD_SDK_BRANCH: php-sdk-2.1.7
+        PHP_BUILD_SDK_BRANCH: php-sdk-2.1.9beta1
         PHP_BUILD_CRT: vc15
         # ext and env setup for tests
         #MYSQL_TEST_PASSWD: Password12!
diff -pruN 7.2.9-1/configure 7.2.11-3/configure
--- 7.2.9-1/configure	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/configure	2018-10-09 15:09:36.000000000 +0000
@@ -1798,7 +1798,7 @@ Extensions:
                           Enable PCRE valgrind support. Developers only!
   --without-sqlite3=DIR   Do not include SQLite3 support. DIR is the prefix to
                           SQLite3 installation directory.
-  --with-zlib=DIR         Include ZLIB support (requires zlib >= 1.0.9)
+  --with-zlib=DIR         Include ZLIB support (requires zlib >= 1.2.0.4)
   --with-zlib-dir=<DIR>   Define the location of zlib install directory
   --enable-bcmath         Enable bc style precision math functions
   --with-bz2=DIR          Include BZip2 support
@@ -3655,7 +3655,7 @@ ac_config_headers="$ac_config_headers ma
 
 PHP_MAJOR_VERSION=7
 PHP_MINOR_VERSION=2
-PHP_RELEASE_VERSION=9
+PHP_RELEASE_VERSION=11
 PHP_EXTRA_VERSION=""
 PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
 PHP_VERSION_ID=`expr $PHP_MAJOR_VERSION \* 10000 + $PHP_MINOR_VERSION \* 100 + $PHP_RELEASE_VERSION`
@@ -9859,6 +9859,10 @@ EOF
 
   PHP_VAR_SUBST="$PHP_VAR_SUBST BUILD_PHPDBG_SHARED"
 
+
+
+  PHP_OUTPUT_FILES="$PHP_OUTPUT_FILES sapi/phpdbg/phpdbg.1"
+
 fi
 
 if test "$PHP_PHPDBG_WEBHELPER" != "no"; then
@@ -21828,7 +21832,7 @@ EOF
   fi
 
   if test -z "$ZLIB_DIR"; then
-    as_fn_error $? "Cannot find libz" "$LINENO" 5
+    as_fn_error $? "Cannot find zlib" "$LINENO" 5
   fi
 
   case $ZLIB_DIR in
@@ -21838,11 +21842,11 @@ EOF
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib version >= 1.2.0.4" >&5
 $as_echo_n "checking for zlib version >= 1.2.0.4... " >&6; }
-  ZLIB_VERSION=`$EGREP "define ZLIB_VERSION" $ZLIB_DIR/include/zlib.h | $SED -e 's/[^0-9\.]//g'`
+  ZLIB_VERSION=`$EGREP "define ZLIB_VERSION" $ZLIB_INCDIR/zlib.h | $SED -e 's/[^0-9\.]//g'`
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZLIB_VERSION" >&5
 $as_echo "$ZLIB_VERSION" >&6; }
   if test `echo $ZLIB_VERSION | $SED -e 's/[^0-9]/ /g' | $AWK '{print $1*1000000 + $2*10000 + $3*100 + $4}'` -lt 1020004; then
-    as_fn_error $? "libz version greater or equal to 1.2.0.4 required" "$LINENO" 5
+    as_fn_error $? "zlib version greater or equal to 1.2.0.4 required" "$LINENO" 5
   fi
 
 
@@ -38419,106 +38423,6 @@ EOF
   PHP_VAR_SUBST="$PHP_VAR_SUBST GETTEXT_SHARED_LIBADD"
 
 
-  if test -n "$GETTEXT_LIBS"; then
-
-
-  if test "$ext_shared" = "yes"; then
-    GETTEXT_SHARED_LIBADD="-l$GETTEXT_LIBS $GETTEXT_SHARED_LIBADD"
-    if test -n "$GETTEXT_LIBDIR"; then
-
-  if test "$GETTEXT_LIBDIR" != "/usr/$PHP_LIBDIR" && test "$GETTEXT_LIBDIR" != "/usr/lib"; then
-
-  if test -z "$GETTEXT_LIBDIR" || echo "$GETTEXT_LIBDIR" | grep '^/' >/dev/null ; then
-    ai_p=$GETTEXT_LIBDIR
-  else
-
-    ep_dir=`echo $GETTEXT_LIBDIR|$SED 's%/*[^/][^/]*/*$%%'`
-
-    ep_realdir=`(cd "$ep_dir" && pwd)`
-    ai_p="$ep_realdir"/`basename "$GETTEXT_LIBDIR"`
-  fi
-
-
-      if test "$ext_shared" = "yes"; then
-        GETTEXT_SHARED_LIBADD="-L$ai_p $GETTEXT_SHARED_LIBADD"
-        test -n "$ld_runpath_switch" && GETTEXT_SHARED_LIBADD="$ld_runpath_switch$ai_p $GETTEXT_SHARED_LIBADD"
-      else
-
-
-
-  unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'`
-
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-    test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"
-    LDFLAGS="$LDFLAGS -L$ai_p"
-    PHP_RPATHS="$PHP_RPATHS $ai_p"
-
-  fi
-
-
-      fi
-
-  fi
-
-    fi
-  else
-
-
-  if test -n "$GETTEXT_LIBDIR"; then
-
-  if test "$GETTEXT_LIBDIR" != "/usr/$PHP_LIBDIR" && test "$GETTEXT_LIBDIR" != "/usr/lib"; then
-
-  if test -z "$GETTEXT_LIBDIR" || echo "$GETTEXT_LIBDIR" | grep '^/' >/dev/null ; then
-    ai_p=$GETTEXT_LIBDIR
-  else
-
-    ep_dir=`echo $GETTEXT_LIBDIR|$SED 's%/*[^/][^/]*/*$%%'`
-
-    ep_realdir=`(cd "$ep_dir" && pwd)`
-    ai_p="$ep_realdir"/`basename "$GETTEXT_LIBDIR"`
-  fi
-
-
-
-
-
-  unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'`
-
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-    test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"
-    LDFLAGS="$LDFLAGS -L$ai_p"
-    PHP_RPATHS="$PHP_RPATHS $ai_p"
-
-  fi
-
-
-
-  fi
-
-  fi
-
-
-  case $GETTEXT_LIBS in
-  c|c_r|pthread*) ;;
-  *)
-      LIBS="-l$GETTEXT_LIBS $LIBS"
-   ;;
-  esac
-
-
-
-
-  fi
-
-
-  fi
-
 
   if test "$GETTEXT_INCDIR" != "/usr/include"; then
 
@@ -38729,6 +38633,105 @@ fi
 
   LDFLAGS=$O_LDFLAGS
 
+  if test -n "$GETTEXT_LIBS"; then
+
+
+  if test "$ext_shared" = "yes"; then
+    GETTEXT_SHARED_LIBADD="-l$GETTEXT_LIBS $GETTEXT_SHARED_LIBADD"
+    if test -n "$GETTEXT_LIBDIR"; then
+
+  if test "$GETTEXT_LIBDIR" != "/usr/$PHP_LIBDIR" && test "$GETTEXT_LIBDIR" != "/usr/lib"; then
+
+  if test -z "$GETTEXT_LIBDIR" || echo "$GETTEXT_LIBDIR" | grep '^/' >/dev/null ; then
+    ai_p=$GETTEXT_LIBDIR
+  else
+
+    ep_dir=`echo $GETTEXT_LIBDIR|$SED 's%/*[^/][^/]*/*$%%'`
+
+    ep_realdir=`(cd "$ep_dir" && pwd)`
+    ai_p="$ep_realdir"/`basename "$GETTEXT_LIBDIR"`
+  fi
+
+
+      if test "$ext_shared" = "yes"; then
+        GETTEXT_SHARED_LIBADD="-L$ai_p $GETTEXT_SHARED_LIBADD"
+        test -n "$ld_runpath_switch" && GETTEXT_SHARED_LIBADD="$ld_runpath_switch$ai_p $GETTEXT_SHARED_LIBADD"
+      else
+
+
+
+  unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'`
+
+  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
+  if test -n "$unique" && test "`eval $cmd`" = "" ; then
+    eval "LIBPATH$unique=set"
+
+    test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"
+    LDFLAGS="$LDFLAGS -L$ai_p"
+    PHP_RPATHS="$PHP_RPATHS $ai_p"
+
+  fi
+
+
+      fi
+
+  fi
+
+    fi
+  else
+
+
+  if test -n "$GETTEXT_LIBDIR"; then
+
+  if test "$GETTEXT_LIBDIR" != "/usr/$PHP_LIBDIR" && test "$GETTEXT_LIBDIR" != "/usr/lib"; then
+
+  if test -z "$GETTEXT_LIBDIR" || echo "$GETTEXT_LIBDIR" | grep '^/' >/dev/null ; then
+    ai_p=$GETTEXT_LIBDIR
+  else
+
+    ep_dir=`echo $GETTEXT_LIBDIR|$SED 's%/*[^/][^/]*/*$%%'`
+
+    ep_realdir=`(cd "$ep_dir" && pwd)`
+    ai_p="$ep_realdir"/`basename "$GETTEXT_LIBDIR"`
+  fi
+
+
+
+
+
+  unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'`
+
+  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
+  if test -n "$unique" && test "`eval $cmd`" = "" ; then
+    eval "LIBPATH$unique=set"
+
+    test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"
+    LDFLAGS="$LDFLAGS -L$ai_p"
+    PHP_RPATHS="$PHP_RPATHS $ai_p"
+
+  fi
+
+
+
+  fi
+
+  fi
+
+
+  case $GETTEXT_LIBS in
+  c|c_r|pthread*) ;;
+  *)
+      LIBS="-l$GETTEXT_LIBS $LIBS"
+   ;;
+  esac
+
+
+
+
+  fi
+
+
+  fi
 fi
 
 
@@ -69673,12 +69676,13 @@ EOF
   fi
 
 
-  for ac_header in sys/mkdev.h
+  for ac_header in sys/mkdev.h sys/sysmacros.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_mkdev_h" = xyes; then :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_MKDEV_H 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -95290,7 +95294,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 95293 "configure"
+#line 95297 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -97329,7 +97333,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 97332 "configure"' > conftest.$ac_ext
+  echo '#line 97336 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -98727,7 +98731,7 @@ else
       LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
 
 cat > conftest.$ac_ext <<EOF
-#line 98730 "configure"
+#line 98734 "configure"
 #include "confdefs.h"
 int main() {
 ; return 0; }
@@ -98885,11 +98889,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"configure:98888: $lt_compile\"" >&5)
+   (eval echo "\"configure:98892: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "configure:98892: \$? = $ac_status" >&5
+   echo "configure:98896: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -99183,11 +99187,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"configure:99186: $lt_compile\"" >&5)
+   (eval echo "\"configure:99190: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "configure:99190: \$? = $ac_status" >&5
+   echo "configure:99194: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -99287,11 +99291,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"configure:99290: $lt_compile\"" >&5)
+   (eval echo "\"configure:99294: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "configure:99294: \$? = $ac_status" >&5
+   echo "configure:99298: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -99751,7 +99755,7 @@ _LT_EOF
        # Determine the default libpath from the value encoded in an empty executable.
 
 cat > conftest.$ac_ext <<EOF
-#line 99754 "configure"
+#line 99758 "configure"
 #include "confdefs.h"
 int main() {
 ; return 0; }
@@ -99793,7 +99797,7 @@ if test -z "$aix_libpath"; then aix_libp
 	 # Determine the default libpath from the value encoded in an empty executable.
 
 cat > conftest.$ac_ext <<EOF
-#line 99796 "configure"
+#line 99800 "configure"
 #include "confdefs.h"
 int main() {
 ; return 0; }
@@ -101310,7 +101314,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 101313 "configure"
+#line 101317 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -101410,7 +101414,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 101413 "configure"
+#line 101417 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -102475,7 +102479,7 @@ case $host_os in
       # Determine the default libpath from the value encoded in an empty executable.
 
 cat > conftest.$ac_ext <<EOF
-#line 102478 "configure"
+#line 102482 "configure"
 #include "confdefs.h"
 int main() {
 ; return 0; }
@@ -102518,7 +102522,7 @@ if test -z "$aix_libpath"; then aix_libp
 	# Determine the default libpath from the value encoded in an empty executable.
 
 cat > conftest.$ac_ext <<EOF
-#line 102521 "configure"
+#line 102525 "configure"
 #include "confdefs.h"
 int main() {
 ; return 0; }
@@ -103770,11 +103774,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"configure:103773: $lt_compile\"" >&5)
+   (eval echo "\"configure:103777: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "configure:103777: \$? = $ac_status" >&5
+   echo "configure:103781: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -103874,11 +103878,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"configure:103877: $lt_compile\"" >&5)
+   (eval echo "\"configure:103881: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "configure:103881: \$? = $ac_status" >&5
+   echo "configure:103885: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
diff -pruN 7.2.9-1/configure.ac 7.2.11-3/configure.ac
--- 7.2.9-1/configure.ac	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/configure.ac	2018-10-09 15:09:39.000000000 +0000
@@ -107,7 +107,7 @@ int zend_sprintf(char *buffer, const cha
 
 PHP_MAJOR_VERSION=7
 PHP_MINOR_VERSION=2
-PHP_RELEASE_VERSION=9
+PHP_RELEASE_VERSION=11
 PHP_EXTRA_VERSION=""
 PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
 PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION`
diff -pruN 7.2.9-1/debian/changelog 7.2.11-3/debian/changelog
--- 7.2.9-1/debian/changelog	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/changelog	2018-10-25 06:40:02.000000000 +0000
@@ -1,3 +1,34 @@
+php7.2 (7.2.11-3) unstable; urgency=medium
+
+  * Remove libmcrypt-dev from Build-Depends
+  * Add patch to use pkg-config for FreeType2 detection (Closes: #911459)
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 25 Oct 2018 06:40:02 +0000
+
+php7.2 (7.2.11-2) unstable; urgency=medium
+
+  * Remove ancient mv_conffile (from php5)
+  * Downgrade dh-php from Recommends to Suggests (Closes: #910620)
+  * Disable the enabled modules in prerm, because in postrm the phpquery
+    script is not aware of already removed sapi (Closes: #911018)
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 15 Oct 2018 11:33:43 +0000
+
+php7.2 (7.2.11-1) unstable; urgency=medium
+
+  * Fix Vcs-* links
+  * New upstream version 7.2.11
+  * Rebase patches for PHP 7.2.11
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 13 Oct 2018 13:39:22 +0000
+
+php7.2 (7.2.10-1) unstable; urgency=medium
+
+  * New upstream version 7.2.10
+  * Rebase patches for PHP 7.2.10
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 01 Oct 2018 11:42:24 +0000
+
 php7.2 (7.2.9-1) unstable; urgency=medium
 
   [ Lior Kaplan ]
diff -pruN 7.2.9-1/debian/control 7.2.11-3/debian/control
--- 7.2.9-1/debian/control	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/control	2018-10-25 06:40:02.000000000 +0000
@@ -39,7 +39,6 @@ Build-Depends: apache2-dev (>= 2.4),
                libkrb5-dev,
                libldap2-dev,
                libmagic-dev,
-               libmcrypt-dev,
                libmhash-dev (>= 0.8.8),
                libnss-myhostname [linux-any],
                libonig-dev,
@@ -76,8 +75,8 @@ Build-Depends: apache2-dev (>= 2.4),
 Build-Conflicts: bind-dev,
                  libxmlrpc-core-c3-dev
 Standards-Version: 3.9.7
-Vcs-Git: https://salsa.debian.org/php-team/php.git
-Vcs-Browser: https://gitlab.com/deb.sury.org/php
+Vcs-Git: https://salsa.debian.org/php-team/php.git -b master-7.2
+Vcs-Browser: https://salsa.debian.org/php-team/php
 Homepage: http://www.php.net/
 
 Package: libapache2-mod-php7.2
@@ -223,8 +222,8 @@ Depends: autoconf (>= 2.63),
          ${perl:Depends}
 Conflicts: ${libtool:Conflicts}
 Architecture: any
-Recommends: dh-php,
-            pkg-php-tools
+Recommends: pkg-php-tools
+Suggests: dh-php
 Description: Files for PHP7.2 module development
  This package provides the files from the PHP7.2 source needed for compiling
  additional modules.
diff -pruN 7.2.9-1/debian/control.in 7.2.11-3/debian/control.in
--- 7.2.9-1/debian/control.in	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/control.in	2018-10-25 06:40:02.000000000 +0000
@@ -39,7 +39,6 @@ Build-Depends: apache2-dev (>= 2.4),
                libkrb5-dev,
                libldap2-dev,
                libmagic-dev,
-               libmcrypt-dev,
                libmhash-dev (>= 0.8.8),
                libnss-myhostname [linux-any],
                libonig-dev,
@@ -76,8 +75,8 @@ Build-Depends: apache2-dev (>= 2.4),
 Build-Conflicts: bind-dev,
                  libxmlrpc-core-c3-dev
 Standards-Version: 3.9.7
-Vcs-Git: https://salsa.debian.org/php-team/php.git
-Vcs-Browser: https://gitlab.com/deb.sury.org/php
+Vcs-Git: https://salsa.debian.org/php-team/php.git -b master-@PHP_VERSION@
+Vcs-Browser: https://salsa.debian.org/php-team/php
 Homepage: http://www.php.net/
 
 Package: libapache2-mod-php@PHP_VERSION@
@@ -223,8 +222,8 @@ Depends: autoconf (>= 2.63),
          ${perl:Depends}
 Conflicts: ${libtool:Conflicts}
 Architecture: any
-Recommends: dh-php,
-            pkg-php-tools
+Recommends: pkg-php-tools
+Suggests: dh-php
 Description: Files for PHP@PHP_VERSION@ module development
  This package provides the files from the PHP@PHP_VERSION@ source needed for compiling
  additional modules.
diff -pruN 7.2.9-1/debian/patches/0001-libtool_fixes.patch 7.2.11-3/debian/patches/0001-libtool_fixes.patch
--- 7.2.9-1/debian/patches/0001-libtool_fixes.patch	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/0001-libtool_fixes.patch	2018-10-25 06:40:02.000000000 +0000
@@ -22,7 +22,7 @@ index 8bf35d3..7c7ee66 100644
  dnl TSRM_PTHREAD
  
 diff --git a/configure.ac b/configure.ac
-index 61d2c84..aa1abd6 100644
+index ed6ac8f..a62d645 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -1432,8 +1432,6 @@ AC_PROVIDE_IFELSE([PHP_REQUIRE_CXX], [], [
diff -pruN 7.2.9-1/debian/patches/0003-debian_quirks.patch 7.2.11-3/debian/patches/0003-debian_quirks.patch
--- 7.2.9-1/debian/patches/0003-debian_quirks.patch	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/0003-debian_quirks.patch	2018-10-25 06:40:02.000000000 +0000
@@ -14,7 +14,7 @@ Subject: debian_quirks
  8 files changed, 22 insertions(+), 17 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index aa1abd6..b8c47c2 100644
+index a62d645..bcf1b64 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -1106,7 +1106,7 @@ if test "$PHP_CLI" = "no"; then
@@ -52,7 +52,7 @@ index aa1abd6..b8c47c2 100644
  
  dnl
 diff --git a/ext/ext_skel b/ext/ext_skel
-index 09a003c..2e71bf0 100755
+index 62e9ab5..ed8f862 100755
 --- a/ext/ext_skel
 +++ b/ext/ext_skel
 @@ -70,7 +70,7 @@ if test -d "$extname" ; then
diff -pruN 7.2.9-1/debian/patches/0007-extension_api.patch 7.2.11-3/debian/patches/0007-extension_api.patch
--- 7.2.9-1/debian/patches/0007-extension_api.patch	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/0007-extension_api.patch	2018-10-25 06:40:02.000000000 +0000
@@ -8,7 +8,7 @@ Subject: extension_api
  2 files changed, 8 insertions(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index b8c47c2..8cb95eb 100644
+index bcf1b64..7aa471d 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -1218,8 +1218,10 @@ ZEND_MODULE_API_NO=`$EGREP '#define ZEND_MODULE_API_NO ' $srcdir/Zend/zend_modul
diff -pruN 7.2.9-1/debian/patches/0025-php-5.3.9-mysqlnd.patch 7.2.11-3/debian/patches/0025-php-5.3.9-mysqlnd.patch
--- 7.2.9-1/debian/patches/0025-php-5.3.9-mysqlnd.patch	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/0025-php-5.3.9-mysqlnd.patch	2018-10-25 06:40:02.000000000 +0000
@@ -8,7 +8,7 @@ Subject: php-5.3.9-mysqlnd
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/ext/mysqlnd/mysqlnd_connection.c b/ext/mysqlnd/mysqlnd_connection.c
-index 1e0088b..3dff464 100644
+index ea3d1cb..df0b8c1 100644
 --- a/ext/mysqlnd/mysqlnd_connection.c
 +++ b/ext/mysqlnd/mysqlnd_connection.c
 @@ -559,7 +559,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_scheme)(MYSQLND_CONN_DATA * conn, MYSQLND_
diff -pruN 7.2.9-1/debian/patches/0026-php-5.3.9-gnusrc.patch 7.2.11-3/debian/patches/0026-php-5.3.9-gnusrc.patch
--- 7.2.9-1/debian/patches/0026-php-5.3.9-gnusrc.patch	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/0026-php-5.3.9-gnusrc.patch	2018-10-25 06:40:02.000000000 +0000
@@ -29,7 +29,7 @@ index dbd30da..989912c 100644
  /*
     +----------------------------------------------------------------------+
 diff --git a/configure.ac b/configure.ac
-index 8cb95eb..af799aa 100644
+index 7aa471d..3e70061 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -124,6 +124,8 @@ AC_DEFUN([PHP_EXT_DIR],[$config_m4_dir])dnl
diff -pruN 7.2.9-1/debian/patches/0036-php-5.4.9-fixheader.patch 7.2.11-3/debian/patches/0036-php-5.4.9-fixheader.patch
--- 7.2.9-1/debian/patches/0036-php-5.4.9-fixheader.patch	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/0036-php-5.4.9-fixheader.patch	2018-10-25 06:40:02.000000000 +0000
@@ -8,7 +8,7 @@ Make generated php_config.h constant acr
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index af799aa..add3d4a 100644
+index 3e70061..afd5374 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -1310,7 +1310,7 @@ PHP_BUILD_DATE=`date -u +%Y-%m-%d`
diff -pruN 7.2.9-1/debian/patches/0039-hack-phpdbg-to-explicitly-link-with-libedit.patch 7.2.11-3/debian/patches/0039-hack-phpdbg-to-explicitly-link-with-libedit.patch
--- 7.2.9-1/debian/patches/0039-hack-phpdbg-to-explicitly-link-with-libedit.patch	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/0039-hack-phpdbg-to-explicitly-link-with-libedit.patch	2018-10-25 06:40:02.000000000 +0000
@@ -7,7 +7,7 @@ Subject: hack-phpdbg-to-explicitly-link-
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/sapi/phpdbg/config.m4 b/sapi/phpdbg/config.m4
-index 9fb4e62..a55199a 100644
+index 223c182..83de105 100644
 --- a/sapi/phpdbg/config.m4
 +++ b/sapi/phpdbg/config.m4
 @@ -25,7 +25,9 @@ if test "$BUILD_PHPDBG" = "" && test "$PHP_PHPDBG" != "no"; then
@@ -17,7 +17,7 @@ index 9fb4e62..a55199a 100644
 -  	PHPDBG_EXTRA_LIBS="$PHP_READLINE_LIBS"
 +#  	PHPDBG_EXTRA_LIBS="$PHP_READLINE_LIBS"
 +# Temporary hack until this gets fixed
-+  	PHPDBG_EXTRA_LIBS="-ledit -ltermcap"
++	PHPDBG_EXTRA_LIBS="-ledit -ltermcap"
    fi
-   
+ 
    PHP_SUBST(PHP_PHPDBG_CFLAGS)
diff -pruN 7.2.9-1/debian/patches/0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch 7.2.11-3/debian/patches/0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch
--- 7.2.9-1/debian/patches/0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch	2018-10-25 06:40:02.000000000 +0000
@@ -7,7 +7,7 @@ Subject: Really expand $libdir/$datadir
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index add3d4a..6266a8d 100644
+index afd5374..4f4c1ea 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -1265,9 +1265,9 @@ EXPANDED_LOCALSTATEDIR=`eval echo $localstatedir`
diff -pruN 7.2.9-1/debian/patches/0048-Use-pkg-config-for-FreeType2-detection.patch 7.2.11-3/debian/patches/0048-Use-pkg-config-for-FreeType2-detection.patch
--- 7.2.9-1/debian/patches/0048-Use-pkg-config-for-FreeType2-detection.patch	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/debian/patches/0048-Use-pkg-config-for-FreeType2-detection.patch	2018-10-25 06:40:02.000000000 +0000
@@ -0,0 +1,53 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Mon, 22 Oct 2018 06:54:31 +0000
+Subject: Use pkg-config for FreeType2 detection
+
+---
+ ext/gd/config.m4 | 30 +++++++++++++++++++-----------
+ 1 file changed, 19 insertions(+), 11 deletions(-)
+
+diff --git a/ext/gd/config.m4 b/ext/gd/config.m4
+index 1edd91f..e5bdd66 100644
+--- a/ext/gd/config.m4
++++ b/ext/gd/config.m4
+@@ -186,21 +186,29 @@ AC_DEFUN([PHP_GD_XPM],[
+ AC_DEFUN([PHP_GD_FREETYPE2],[
+   if test "$PHP_FREETYPE_DIR" != "no"; then
+ 
+-    for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+-      if test -f "$i/bin/freetype-config"; then
+-        FREETYPE2_DIR=$i
+-        FREETYPE2_CONFIG="$i/bin/freetype-config"
+-        break
++    if test -z "$PKG_CONFIG"; then
++      AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
++    fi
++    if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
++      FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
++      FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
++    else
++      for i in $PHP_FREETYPE_DIR /usr/local /usr; do
++        if test -f "$i/bin/freetype-config"; then
++          FREETYPE2_DIR=$i
++          FREETYPE2_CONFIG="$i/bin/freetype-config"
++          break
++        fi
++      done
++
++      if test -z "$FREETYPE2_DIR"; then
++        AC_MSG_ERROR([freetype-config not found.])
+       fi
+-    done
+ 
+-    if test -z "$FREETYPE2_DIR"; then
+-      AC_MSG_ERROR([freetype-config not found.])
++      FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
++      FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+     fi
+ 
+-    FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+-    FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+-
+     PHP_EVAL_INCLINE($FREETYPE2_CFLAGS)
+     PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD)
+     AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
diff -pruN 7.2.9-1/debian/patches/series 7.2.11-3/debian/patches/series
--- 7.2.9-1/debian/patches/series	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/patches/series	2018-10-25 06:40:02.000000000 +0000
@@ -45,3 +45,4 @@
 0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch
 0046-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch
 0047-Revert-libxmlrc-uses-system-malloc-instead-of-PHP-al.patch
+0048-Use-pkg-config-for-FreeType2-detection.patch
diff -pruN 7.2.9-1/debian/php-fpm.postrm.extra 7.2.11-3/debian/php-fpm.postrm.extra
--- 7.2.9-1/debian/php-fpm.postrm.extra	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/php-fpm.postrm.extra	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-dpkg-maintscript-helper mv_conffile /etc/php5/fpm/main.conf /etc/php5/fpm/php-fpm.conf 5.3.5-1 -- "$@"
diff -pruN 7.2.9-1/debian/php-module.postrm.in 7.2.11-3/debian/php-module.postrm.in
--- 7.2.9-1/debian/php-module.postrm.in	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/php-module.postrm.in	2018-10-25 06:40:02.000000000 +0000
@@ -39,6 +39,16 @@ if [ "$1" = "purge" ]; then
 		fi
 	    done
     done
+
+    for dir in \
+	/etc/php/@PHP_VERSION@/mods-available \
+	/etc/php/@PHP_VERSION@ \
+	/etc/php;
+    do
+	if [ -d $dir ]; then
+	    rmdir --ignore-fail-on-non-empty $dir
+	fi
+    done
 fi
 
 #DEBHELPER#
diff -pruN 7.2.9-1/debian/php-sapi.postrm 7.2.11-3/debian/php-sapi.postrm
--- 7.2.9-1/debian/php-sapi.postrm	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/php-sapi.postrm	2018-10-25 06:40:02.000000000 +0000
@@ -6,24 +6,6 @@ set -e
 
 php_enable() { return 0; }
 
-if [ "$1" = "remove" ]; then
-    if [ -e /usr/lib/php/php-maintscript-helper ]; then
-	. /usr/lib/php/php-maintscript-helper
-
-	mods=$(phpquery -M -v @PHP_VERSION@)
-	for mod in $mods; do
-	    php_invoke dismod @PHP_VERSION@ @sapi@ $mod
-	done
-    else
-	for mod in /etc/php/@PHP_VERSION@/conf.d/*.ini; do 
-	    rm -f $mod
-	    for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
-		rm -f $mod$ext
-	    done
-	done
-    fi
-fi
-
 if [ "$1" = "purge" ]; then
     phpini=/etc/php/@PHP_VERSION@/@sapi@/php.ini
     # remove the flag to remember the original state
@@ -44,9 +26,9 @@ if [ "$1" = "purge" ]; then
     for dir in \
 	/etc/php/@PHP_VERSION@/@sapi@/conf.d \
 	/etc/php/@PHP_VERSION@/@sapi@ \
-	/etc/php/@PHP_VERSION@/ \
-	/etc/php; do
-	
+	/etc/php/@PHP_VERSION@ \
+	/etc/php;
+    do
 	if [ -d $dir ]; then
 	    rmdir --ignore-fail-on-non-empty $dir
 	fi
diff -pruN 7.2.9-1/debian/php-sapi.prerm 7.2.11-3/debian/php-sapi.prerm
--- 7.2.9-1/debian/php-sapi.prerm	2018-08-19 06:56:13.000000000 +0000
+++ 7.2.11-3/debian/php-sapi.prerm	2018-10-25 06:40:02.000000000 +0000
@@ -6,6 +6,24 @@ set -e
 
 php_enable() { return 0; }
 
+if [ "$1" = "remove" ]; then
+    if [ -e /usr/lib/php/php-maintscript-helper ]; then
+	. /usr/lib/php/php-maintscript-helper
+
+	mods=$(phpquery -M -v @PHP_VERSION@)
+	for mod in $mods; do
+	    php_invoke dismod @PHP_VERSION@ @sapi@ $mod
+	done
+    else
+	for mod in /etc/php/@PHP_VERSION@/@sapi@/conf.d/*.ini; do 
+	    rm -f $mod
+	    for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
+		rm -f $mod$ext
+	    done
+	done
+    fi
+fi
+
 #DEBHELPER#
 
 exit 0
diff -pruN 7.2.9-1/ext/bz2/bz2.c 7.2.11-3/ext/bz2/bz2.c
--- 7.2.9-1/ext/bz2/bz2.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/ext/bz2/bz2.c	2018-10-09 15:09:40.000000000 +0000
@@ -75,7 +75,7 @@ ZEND_BEGIN_ARG_INFO(arginfo_bzerror, 0)
 	ZEND_ARG_INFO(0, bz)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_bzcompress, 0, 0, 2)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_bzcompress, 0, 0, 1)
 	ZEND_ARG_INFO(0, source)
 	ZEND_ARG_INFO(0, blocksize)
 	ZEND_ARG_INFO(0, workfactor)
diff -pruN 7.2.9-1/ext/com_dotnet/com_iterator.c 7.2.11-3/ext/com_dotnet/com_iterator.c
--- 7.2.9-1/ext/com_dotnet/com_iterator.c	2018-08-14 14:26:43.000000000 +0000
+++ 7.2.11-3/ext/com_dotnet/com_iterator.c	2018-10-09 15:09:51.000000000 +0000
@@ -82,7 +82,7 @@ static void com_iter_get_key(zend_object
 	}
 }
 
-static int com_iter_move_forwards(zend_object_iterator *iter)
+static void com_iter_move_forwards(zend_object_iterator *iter)
 {
 	struct php_com_iterator *I = (struct php_com_iterator*)Z_PTR(iter->data);
 	unsigned long n_fetched;
@@ -103,18 +103,18 @@ static int com_iter_move_forwards(zend_o
 		} else {
 			/* indicate that there are no more items */
 			I->key = (ulong)-1;
-			return FAILURE;
+			return;
 		}
 	} else {
 		/* safe array */
 		if (I->key >= (ULONG) I->sa_max) {
 			I->key = (ulong)-1;
-			return FAILURE;
+			return;
 		}
 		I->key++;
 		if (php_com_safearray_get_elem(&I->safe_array, &I->v, (LONG)I->key) == 0) {
 			I->key = (ulong)-1;
-			return FAILURE;
+			return;
 		}
 	}
 
@@ -122,7 +122,6 @@ static int com_iter_move_forwards(zend_o
 	php_com_zval_from_variant(&ptr, &I->v, I->code_page);
 	/* php_com_wrap_variant(ptr, &I->v, I->code_page); */
 	ZVAL_COPY_VALUE(&I->zdata, &ptr);
-	return SUCCESS;
 }
 
 
diff -pruN 7.2.9-1/ext/com_dotnet/com_saproxy.c 7.2.11-3/ext/com_dotnet/com_saproxy.c
--- 7.2.9-1/ext/com_dotnet/com_saproxy.c	2018-08-14 14:26:43.000000000 +0000
+++ 7.2.11-3/ext/com_dotnet/com_saproxy.c	2018-10-09 15:09:51.000000000 +0000
@@ -514,15 +514,13 @@ static void saproxy_iter_get_key(zend_ob
 	}
 }
 
-static int saproxy_iter_move_forwards(zend_object_iterator *iter)
+static void saproxy_iter_move_forwards(zend_object_iterator *iter)
 {
 	php_com_saproxy_iter *I = (php_com_saproxy_iter*)Z_PTR(iter->data);
 
 	if (++I->key >= I->imax) {
 		I->key = -1;
-		return FAILURE;
 	}
-	return SUCCESS;
 }
 
 static zend_object_iterator_funcs saproxy_iter_funcs = {
diff -pruN 7.2.9-1/ext/com_dotnet/com_typeinfo.c 7.2.11-3/ext/com_dotnet/com_typeinfo.c
--- 7.2.9-1/ext/com_dotnet/com_typeinfo.c	2018-08-14 14:26:43.000000000 +0000
+++ 7.2.11-3/ext/com_dotnet/com_typeinfo.c	2018-10-09 15:09:51.000000000 +0000
@@ -223,9 +223,9 @@ PHP_COM_DOTNET_API int php_com_import_ty
 }
 
 /* Type-library stuff */
-void php_com_typelibrary_dtor(void *pDest)
+void php_com_typelibrary_dtor(zval *pDest)
 {
-	ITypeLib **Lib = (ITypeLib**)pDest;
+	ITypeLib **Lib = (ITypeLib**)Z_PTR_P(pDest);
 	ITypeLib_Release(*Lib);
 }
 
diff -pruN 7.2.9-1/ext/com_dotnet/php_com_dotnet_internal.h 7.2.11-3/ext/com_dotnet/php_com_dotnet_internal.h
--- 7.2.9-1/ext/com_dotnet/php_com_dotnet_internal.h	2018-08-14 14:26:43.000000000 +0000
+++ 7.2.11-3/ext/com_dotnet/php_com_dotnet_internal.h	2018-10-09 15:09:51.000000000 +0000
@@ -174,7 +174,7 @@ PHP_COM_DOTNET_API ITypeLib *php_com_loa
 PHP_COM_DOTNET_API ITypeLib *php_com_load_typelib(char *search_string, int codepage);
 PHP_COM_DOTNET_API int php_com_import_typelib(ITypeLib *TL, int mode,
 		int codepage);
-void php_com_typelibrary_dtor(void *pDest);
+void php_com_typelibrary_dtor(zval *pDest);
 ITypeInfo *php_com_locate_typeinfo(char *typelibname, php_com_dotnet_object *obj, char *dispname, int sink);
 int php_com_process_typeinfo(ITypeInfo *typeinfo, HashTable *id_to_name, int printdef, GUID *guid, int codepage);
 
diff -pruN 7.2.9-1/ext/curl/config.w32 7.2.11-3/ext/curl/config.w32
--- 7.2.9-1/ext/curl/config.w32	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/curl/config.w32	2018-10-09 15:09:47.000000000 +0000
@@ -4,13 +4,28 @@
 ARG_WITH("curl", "cURL support", "no");
 
 if (PHP_CURL != "no") {
+	var ver_num = NaN;
+	var f = PHP_PHP_BUILD + "/include/curl/curlver.h";
+	if (FSO.FileExists(f)) {
+		var reg = /LIBCURL_VERSION_NUM\s+(0x[a-z0-9]+)/gi;
+		var m = reg.exec(file_get_contents(PHP_PHP_BUILD + "/include/curl/curlver.h"));
+		if (!!m && m.length >= 2) {
+			ver_num = parseInt(m[1]);
+		}
+	}
+
 	if (CHECK_LIB("libcurl_a.lib;libcurl.lib", "curl", PHP_CURL) &&
 		CHECK_HEADER_ADD_INCLUDE("curl/easy.h", "CFLAGS_CURL") &&
 		SETUP_OPENSSL("curl", PHP_CURL) > 0 &&
 		CHECK_LIB("winmm.lib", "curl", PHP_CURL) &&
 		CHECK_LIB("wldap32.lib", "curl", PHP_CURL) &&
 		(((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib", "curl", PHP_CURL))) || 
-			(PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "curl", PHP_CURL)) || (PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED)))
+			(PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "curl", PHP_CURL)) || (PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED))) &&
+		!isNaN(ver_num) &&
+		(ver_num <= parseInt("0x073b00") || ver_num > parseInt("0x073b00") &&
+			CHECK_LIB("normaliz.lib", "curl", PHP_CURL) &&
+			CHECK_LIB("libssh2.lib", "curl", PHP_CURL) &&
+			CHECK_LIB("nghttp2.lib", "curl", PHP_CURL))
 		) {
 		EXTENSION("curl", "interface.c multi.c share.c curl_file.c");
 		AC_DEFINE('HAVE_CURL', 1, 'Have cURL library');
diff -pruN 7.2.9-1/ext/curl/multi.c 7.2.11-3/ext/curl/multi.c
--- 7.2.9-1/ext/curl/multi.c	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/curl/multi.c	2018-10-09 15:09:47.000000000 +0000
@@ -192,6 +192,7 @@ PHP_FUNCTION(curl_multi_remove_handle)
 }
 /* }}} */
 
+#if LIBCURL_VERSION_NUM < 0x071c00
 static void _make_timeval_struct(struct timeval *to, double timeout) /* {{{ */
 {
 	unsigned long conv;
@@ -201,6 +202,7 @@ static void _make_timeval_struct(struct
 	to->tv_usec = conv % 1000000;
 }
 /* }}} */
+#endif
 
 /* {{{ proto int curl_multi_select(resource mh[, double timeout])
    Get all the sockets associated with the cURL extension, which can then be "selected" */
@@ -208,12 +210,16 @@ PHP_FUNCTION(curl_multi_select)
 {
 	zval           *z_mh;
 	php_curlm      *mh;
+	double          timeout = 1.0;
+#if LIBCURL_VERSION_NUM >= 0x071c00 /* Available since 7.28.0 */
+	int             numfds = 0;
+#else
 	fd_set          readfds;
 	fd_set          writefds;
 	fd_set          exceptfds;
 	int             maxfd;
-	double          timeout = 1.0;
 	struct timeval  to;
+#endif
 	CURLMcode error = CURLM_OK;
 
 	ZEND_PARSE_PARAMETERS_START(1,2)
@@ -226,6 +232,15 @@ PHP_FUNCTION(curl_multi_select)
 		RETURN_FALSE;
 	}
 
+#if LIBCURL_VERSION_NUM >= 0x071c00 /* Available since 7.28.0 */
+	error = curl_multi_wait(mh->multi, NULL, 0, (unsigned long) timeout * 1000.0, &numfds);
+	if (CURLM_OK != error) {
+		SAVE_CURLM_ERROR(mh, error);
+		RETURN_LONG(-1);
+	}
+
+	RETURN_LONG(numfds);
+#else
 	_make_timeval_struct(&to, timeout);
 
 	FD_ZERO(&readfds);
@@ -239,6 +254,7 @@ PHP_FUNCTION(curl_multi_select)
 		RETURN_LONG(-1);
 	}
 	RETURN_LONG(select(maxfd + 1, &readfds, &writefds, &exceptfds, &to));
+#endif
 }
 /* }}} */
 
diff -pruN 7.2.9-1/ext/ext_skel 7.2.11-3/ext/ext_skel
--- 7.2.9-1/ext/ext_skel	2018-08-14 14:26:41.000000000 +0000
+++ 7.2.11-3/ext/ext_skel	2018-10-09 15:09:49.000000000 +0000
@@ -120,9 +120,9 @@ dnl [  --with-$extname             Inclu
 
 dnl Otherwise use enable:
 
-dnl PHP_ARG_ENABLE($extname, whether to enable $extname support,
+PHP_ARG_ENABLE($extname, whether to enable $extname support,
 dnl Make sure that the comment is aligned:
-dnl [  --enable-$extname           Enable $extname support])
+[  --enable-$extname           Enable $extname support])
 
 if test "\$PHP_$EXTNAME" != "no"; then
   dnl Write more examples of tests here...
@@ -197,7 +197,7 @@ cat >config.w32 <<eof
 // ARG_WITH("$extname", "for $extname support", "no");
 
 // Otherwise, use ARG_ENABLE
-// ARG_ENABLE("$extname", "enable $extname support", "no");
+ARG_ENABLE("$extname", "enable $extname support", "no");
 
 if (PHP_$EXTNAME != "no") {
 	EXTENSION("$extname", "$extname.c", PHP_EXTNAME_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
diff -pruN 7.2.9-1/ext/ftp/tests/server.inc 7.2.11-3/ext/ftp/tests/server.inc
--- 7.2.9-1/ext/ftp/tests/server.inc	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/ext/ftp/tests/server.inc	2018-10-09 15:09:40.000000000 +0000
@@ -356,7 +356,7 @@ if ($pid) {
 				fputs($s, "550 No file named \"{$matches [1]}\"\r\n");
 				break;
 			}
-		}elseif (preg_match('/^RETR ([\w\h]+)/', $buf, $matches)) {
+		}elseif (preg_match('/^RETR ([\/]*[\w\h]+)/', $buf, $matches)) {
 			if(!empty($pasv)){
 				;
 			}
@@ -412,6 +412,10 @@ if ($pid) {
 						fputs($fs, "This is line $i of the test data.\n");
 					}
 					fputs($s, "226 Closing data Connection.\r\n");
+					break;
+				case "/bug73457":
+					fputs($s, "150 File status okay; about to open data connection.\r\n");
+					break;
 
 				default:
 					fputs($s, "550 {$matches[1]}: No such file or directory \r\n");
@@ -426,29 +430,35 @@ if ($pid) {
 			$host = "127.0.0.1";
 			$i=0;
 
-			do {
-				if (!empty($ssl)) {
-					$soc = @stream_socket_server("tcp://127.0.0.1:$pasv_port", $errno, $errstr, STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $context);
-				} else {
-					$soc = @stream_socket_server("tcp://127.0.0.1:$pasv_port");
-				}
-				/* Could bind port, Try another port */
+			if (empty($bug73457)) {
+				do {
+					if (!empty($ssl)) {
+						$soc = @stream_socket_server("tcp://127.0.0.1:$pasv_port", $errno, $errstr, STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $context);
+					} else {
+						$soc = @stream_socket_server("tcp://127.0.0.1:$pasv_port");
+					}
+					/* Could bind port, Try another port */
+					if (!$soc) {
+						$pasv_port = rand(50000, 65535);
+					}
+					$i++;
+				} while ($i<10 && !$soc);
+
 				if (!$soc) {
-					$pasv_port = rand(50000, 65535);
+					echo "$errstr ($errno)\n";
+					die("could not bind passive port\n");
 				}
-				$i++;
-			} while ($i<10 && !$soc);
-
-			if (!$soc) {
-				echo "$errstr ($errno)\n";
-				die("could not bind passive port\n");
+			} else {
+				$pasv_port=1234;
 			}
 
 			$p2 = $pasv_port % ((int) 1 << 8);
 			$p1 = ($pasv_port-$p2)/((int) 1 << 8);
 			fputs($s, "227 Entering Passive Mode. (127,0,0,1,{$p1},{$p2})\r\n");
 
-			$pasvs = stream_socket_accept($soc,10);
+            if (empty($bug73457)) {
+                $pasvs = stream_socket_accept($soc,10);
+            }
 
 		} elseif (preg_match('/^EPSV/', $buf, $matches)) {
 			fputs($s, "550 Extended passsive mode not supported.\r\n");
@@ -518,7 +528,9 @@ if ($pid) {
 
 			fputs($s, "226 Closing data Connection.\r\n");
 			fclose($fs);
-                }else {
+		}elseif (preg_match('/^SIZE \/bug73457/', $buf)) {
+			fputs($s, "213 10\r\n");
+		}else {
 			fputs($s, "500 Syntax error, command unrecognized.\r\n");
 			dump_and_exit($buf);
 		}
diff -pruN 7.2.9-1/ext/gettext/config.m4 7.2.11-3/ext/gettext/config.m4
--- 7.2.9-1/ext/gettext/config.m4	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/ext/gettext/config.m4	2018-10-09 15:09:40.000000000 +0000
@@ -35,10 +35,6 @@ if test "$PHP_GETTEXT" != "no"; then
   PHP_NEW_EXTENSION(gettext, gettext.c, $ext_shared)
   PHP_SUBST(GETTEXT_SHARED_LIBADD)
 
-  if test -n "$GETTEXT_LIBS"; then
-    PHP_ADD_LIBRARY_WITH_PATH($GETTEXT_LIBS, $GETTEXT_LIBDIR, GETTEXT_SHARED_LIBADD)
-  fi
-
   PHP_ADD_INCLUDE($GETTEXT_INCDIR)
 
   AC_CHECK_LIB($GETTEXT_CHECK_IN_LIB, ngettext,  [AC_DEFINE(HAVE_NGETTEXT, 1, [ ])])
@@ -47,4 +43,7 @@ if test "$PHP_GETTEXT" != "no"; then
   AC_CHECK_LIB($GETTEXT_CHECK_IN_LIB, bind_textdomain_codeset,  [AC_DEFINE(HAVE_BIND_TEXTDOMAIN_CODESET, 1, [ ])])
   LDFLAGS=$O_LDFLAGS
   
+  if test -n "$GETTEXT_LIBS"; then
+    PHP_ADD_LIBRARY_WITH_PATH($GETTEXT_LIBS, $GETTEXT_LIBDIR, GETTEXT_SHARED_LIBADD)
+  fi
 fi
diff -pruN 7.2.9-1/ext/hash/hash.c 7.2.11-3/ext/hash/hash.c
--- 7.2.9-1/ext/hash/hash.c	2018-08-14 14:26:40.000000000 +0000
+++ 7.2.11-3/ext/hash/hash.c	2018-10-09 15:09:49.000000000 +0000
@@ -1362,7 +1362,7 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_update_file, 0, 0, 2)
 	ZEND_ARG_INFO(0, context)
 	ZEND_ARG_INFO(0, filename)
-	ZEND_ARG_INFO(0, context)
+	ZEND_ARG_INFO(0, stream_context)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_final, 0, 0, 1)
diff -pruN 7.2.9-1/ext/iconv/iconv.c 7.2.11-3/ext/iconv/iconv.c
--- 7.2.9-1/ext/iconv/iconv.c	2018-08-14 14:26:41.000000000 +0000
+++ 7.2.11-3/ext/iconv/iconv.c	2018-10-09 15:09:49.000000000 +0000
@@ -462,7 +462,7 @@ static php_iconv_err_t _php_iconv_append
 
 	if (in_p != NULL) {
 		while (in_left > 0) {
-			out_left = buf_growth - out_left;
+			out_left = buf_growth;
 			smart_str_alloc(d, out_left, 0);
 
 			out_p = ZSTR_VAL((d)->s) + ZSTR_LEN((d)->s);
@@ -496,7 +496,7 @@ static php_iconv_err_t _php_iconv_append
 		}
 	} else {
 		for (;;) {
-			out_left = buf_growth - out_left;
+			out_left = buf_growth;
 			smart_str_alloc(d, out_left, 0);
 
 			out_p = ZSTR_VAL((d)->s) + ZSTR_LEN((d)->s);
@@ -1358,7 +1358,7 @@ static php_iconv_err_t _php_iconv_mime_e
 				prev_in_left = ini_in_left = in_left;
 				ini_in_p = in_p;
 
-				for (out_size = (char_cnt - 2) / 3; out_size > 0;) {
+				for (out_size = (char_cnt - 2); out_size > 0;) {
 #if !ICONV_SUPPORTS_ERRNO
 					size_t prev_out_left;
 #endif
@@ -1422,7 +1422,7 @@ static php_iconv_err_t _php_iconv_mime_e
 						break;
 					}
 
-					out_size -= ((nbytes_required - (char_cnt - 2)) + 1) / 3;
+					out_size -= ((nbytes_required - (char_cnt - 2)) + 2) / 3;
 					in_left = ini_in_left;
 					in_p = ini_in_p;
 				}
@@ -1535,7 +1535,10 @@ static php_iconv_err_t _php_iconv_mime_d
 						break;
 
 					default: /* first letter of a non-encoded word */
-						_php_iconv_appendc(pretval, *p1, cd_pl);
+						err = _php_iconv_appendc(pretval, *p1, cd_pl);
+						if (err != PHP_ICONV_ERR_SUCCESS) {
+							goto out;
+						}
 						encoded_word = NULL;
 						if ((mode & PHP_ICONV_MIME_DECODE_STRICT)) {
 							scan_stat = 12;
@@ -1546,6 +1549,9 @@ static php_iconv_err_t _php_iconv_mime_d
 
 			case 1: /* expecting a delimiter */
 				if (*p1 != '?') {
+					if (*p1 == '\r' || *p1 == '\n') {
+						--p1;
+					}
 					err = _php_iconv_appendl(pretval, encoded_word, (size_t)((p1 + 1) - encoded_word), cd_pl);
 					if (err != PHP_ICONV_ERR_SUCCESS) {
 						goto out;
@@ -1571,6 +1577,23 @@ static php_iconv_err_t _php_iconv_mime_d
 					case '*': /* new style delimiter: locale id follows */
 						scan_stat = 10;
 						break;
+
+					case '\r': case '\n': /* not an encoded-word */
+						--p1;
+						_php_iconv_appendc(pretval, '=', cd_pl);
+						_php_iconv_appendc(pretval, '?', cd_pl);
+						err = _php_iconv_appendl(pretval, csname, (size_t)((p1 + 1) - csname), cd_pl);
+						if (err != PHP_ICONV_ERR_SUCCESS) {
+							goto out;
+						}
+						csname = NULL;
+						if ((mode & PHP_ICONV_MIME_DECODE_STRICT)) {
+							scan_stat = 12;
+						}
+						else {
+							scan_stat = 0;
+						}
+						continue;
 				}
 				if (scan_stat != 2) {
 					char tmpbuf[80];
diff -pruN 7.2.9-1/ext/iconv/tests/bug55146.phpt 7.2.11-3/ext/iconv/tests/bug55146.phpt
--- 7.2.9-1/ext/iconv/tests/bug55146.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/iconv/tests/bug55146.phpt	2018-10-09 15:09:49.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+Bug #55146 (iconv_mime_decode_headers() skips some headers)
+--SKIPIF--
+<?php
+if (!extension_loaded('iconv')) die('skip iconv extension not available');
+?>
+--FILE--
+<?php
+
+$headers = <<< HEADERS
+X-Header-One: H4sIAAAAAAAAA+NgFlsCAAA=
+X-Header-Two: XtLePq6GTMn8G68F0
+HEADERS;
+var_dump(iconv_mime_decode_headers($headers, ICONV_MIME_DECODE_CONTINUE_ON_ERROR));
+
+$headers = <<< HEADERS
+X-Header-One: =
+X-Header-Two: XtLePq6GTMn8G68F0
+HEADERS;
+var_dump(iconv_mime_decode_headers($headers, ICONV_MIME_DECODE_STRICT));
+?>
+===DONE===
+--EXPECT--
+array(2) {
+  ["X-Header-One"]=>
+  string(24) "H4sIAAAAAAAAA+NgFlsCAAA="
+  ["X-Header-Two"]=>
+  string(17) "XtLePq6GTMn8G68F0"
+}
+array(2) {
+  ["X-Header-One"]=>
+  string(1) "="
+  ["X-Header-Two"]=>
+  string(17) "XtLePq6GTMn8G68F0"
+}
+===DONE===
diff -pruN 7.2.9-1/ext/iconv/tests/bug60494.phpt 7.2.11-3/ext/iconv/tests/bug60494.phpt
--- 7.2.9-1/ext/iconv/tests/bug60494.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/iconv/tests/bug60494.phpt	2018-10-09 15:09:49.000000000 +0000
@@ -0,0 +1,23 @@
+--TEST--
+Bug #60494 (iconv_mime_decode does ignore special characters)
+--SKIPIF--
+<?php
+if (!extension_loaded('iconv')) die('skip iconv extension not available');
+?>
+--FILE--
+<?php
+var_dump(iconv_mime_decode('ä'));
+var_dump(iconv_mime_decode('ö'));
+var_dump(iconv_mime_decode('ß'));
+?>
+===DONE===
+--EXPECTF--
+Notice: iconv_mime_decode(): Detected an illegal character in input string in %s on line %d
+bool(false)
+
+Notice: iconv_mime_decode(): Detected an illegal character in input string in %s on line %d
+bool(false)
+
+Notice: iconv_mime_decode(): Detected an illegal character in input string in %s on line %d
+bool(false)
+===DONE===
diff -pruN 7.2.9-1/ext/iconv/tests/bug63839.phpt 7.2.11-3/ext/iconv/tests/bug63839.phpt
--- 7.2.9-1/ext/iconv/tests/bug63839.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/iconv/tests/bug63839.phpt	2018-10-09 15:09:49.000000000 +0000
@@ -0,0 +1,71 @@
+--TEST--
+Bug #63839 (iconv_mime_decode_headers function is skipping headers)
+--SKIPIF--
+<?php
+if (!extension_loaded('iconv')) die('skip iconv extension not available');
+?>
+--FILE--
+<?php
+$headers = 'From: "xyz" <xyz@xyz.com>
+To: <xyz@xyz.com>
+Subject: Reply Is? white side-LED =? in Help
+Date: Sat, 22 Dec 2012
+Message-ID: <006f01cde00e$d9f79da0$8de6d8e0>
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+	boundary="----=_NextPart_000_0070_01CDE03C.F3AFD9A0"
+X-Mailer: Microsoft Office Outlook 12.0
+Thread-Index: Ac3gDtcH2huHjzYcQVmFJPPoWjJogA==
+Content-Language: en-us
+
+';
+var_dump(iconv_mime_decode_headers($headers, ICONV_MIME_DECODE_CONTINUE_ON_ERROR));
+var_dump(iconv_mime_decode_headers($headers, ICONV_MIME_DECODE_STRICT));
+?>
+===DONE===
+--EXPECT--
+array(10) {
+  ["From"]=>
+  string(19) ""xyz" <xyz@xyz.com>"
+  ["To"]=>
+  string(13) "<xyz@xyz.com>"
+  ["Subject"]=>
+  string(35) "Reply Is? white side-LED =? in Help"
+  ["Date"]=>
+  string(16) "Sat, 22 Dec 2012"
+  ["Message-ID"]=>
+  string(32) "<006f01cde00e$d9f79da0$8de6d8e0>"
+  ["MIME-Version"]=>
+  string(3) "1.0"
+  ["Content-Type"]=>
+  string(75) "multipart/alternative; boundary="----=_NextPart_000_0070_01CDE03C.F3AFD9A0""
+  ["X-Mailer"]=>
+  string(29) "Microsoft Office Outlook 12.0"
+  ["Thread-Index"]=>
+  string(32) "Ac3gDtcH2huHjzYcQVmFJPPoWjJogA=="
+  ["Content-Language"]=>
+  string(5) "en-us"
+}
+array(10) {
+  ["From"]=>
+  string(19) ""xyz" <xyz@xyz.com>"
+  ["To"]=>
+  string(13) "<xyz@xyz.com>"
+  ["Subject"]=>
+  string(35) "Reply Is? white side-LED =? in Help"
+  ["Date"]=>
+  string(16) "Sat, 22 Dec 2012"
+  ["Message-ID"]=>
+  string(32) "<006f01cde00e$d9f79da0$8de6d8e0>"
+  ["MIME-Version"]=>
+  string(3) "1.0"
+  ["Content-Type"]=>
+  string(75) "multipart/alternative; boundary="----=_NextPart_000_0070_01CDE03C.F3AFD9A0""
+  ["X-Mailer"]=>
+  string(29) "Microsoft Office Outlook 12.0"
+  ["Thread-Index"]=>
+  string(32) "Ac3gDtcH2huHjzYcQVmFJPPoWjJogA=="
+  ["Content-Language"]=>
+  string(5) "en-us"
+}
+===DONE===
diff -pruN 7.2.9-1/ext/iconv/tests/bug66828.phpt 7.2.11-3/ext/iconv/tests/bug66828.phpt
--- 7.2.9-1/ext/iconv/tests/bug66828.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/iconv/tests/bug66828.phpt	2018-10-09 15:09:49.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+Bug #66828 (iconv_mime_encode Q-encoding longer than it should be)
+--SKIPIF--
+<?php
+if (!extension_loaded('iconv')) die('skip iconv extension not available');
+?>
+--FILE--
+<?php
+$preferences = array(
+    "input-charset" => "ISO-8859-1",
+    "output-charset" => "UTF-8",
+    "line-length" => 76,
+    "line-break-chars" => "\n",
+    "scheme" => "Q"
+);
+var_dump(iconv_mime_encode("Subject", "Test Test Test Test Test Test Test Test", $preferences));
+?>
+===DONE===
+--EXPECT--
+string(74) "Subject: =?UTF-8?Q?Test=20Test=20Test=20Test=20Test=20Test=20Test=20Test?="
+===DONE===
diff -pruN 7.2.9-1/ext/iconv/tests/bug68180.phpt 7.2.11-3/ext/iconv/tests/bug68180.phpt
--- 7.2.9-1/ext/iconv/tests/bug68180.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/iconv/tests/bug68180.phpt	2018-10-09 15:09:49.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+Bug #68180 (iconv_mime_decode can return extra characters in a header)
+--SKIPIF--
+<?php
+if (!extension_loaded('iconv')) die('skip iconv extension not available');
+?>
+--FILE--
+<?php
+$original = "=?UTF-8?Q?=E3=80=8E=E3=80=90=E5=A4=96=E8=B3=87=E7=B3=BB=E6=88=A6=E7=95=A5=E3=82=B3=E3=83=B3=E3=82=B5=E3=83=AB=E3=81=8C=E9=9B=86=E7=B5=90=E3=80=91=E3=83=88=E3=83=83=E3=83=97=E3=82=B3=E3=83=B3=E3=82=B5=E3=83=AB=E3=82=BF=E3=83=B3=E3=83=88=E3=81=A8=E8=A9=B1=E3=81=9B=E3=82=8B=E3=82=B3=E3=83=B3=E3=82=B5=E3=83=AB=E6=A5=AD=E7=95=8C=E7=A0=94=E7=A9=B6=E3=82=BB=E3=83=9F=E3=83=8A=E3=83=BC=E3=80=8F=E3=81=B8=E3=81=AE=E3=82=A8=E3=83=B3=E3=83=88=E3=83=AA=E3=83=BC=E3=81=82=E3=82=8A=E3=81=8C=E3=81=A8=E3=81=86=E3=81=94=E3=81=96=E3=81=84=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82?=";
+$decoded = iconv_mime_decode($original, ICONV_MIME_DECODE_STRICT, 'utf-8');
+var_dump($decoded);
+?>
+===DONE===
+--EXPECT--
+string(183) "『【外資系戦略コンサルが集結】トップコンサルタントと話せるコンサル業界研究セミナー』へのエントリーありがとうございました。"
+===DONE===
diff -pruN 7.2.9-1/ext/intl/msgformat/msgformat_helpers.cpp 7.2.11-3/ext/intl/msgformat/msgformat_helpers.cpp
--- 7.2.9-1/ext/intl/msgformat/msgformat_helpers.cpp	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/intl/msgformat/msgformat_helpers.cpp	2018-10-09 15:09:46.000000000 +0000
@@ -27,6 +27,7 @@
 #include <unicode/timezone.h>
 #include <unicode/datefmt.h>
 #include <unicode/calendar.h>
+#include <unicode/strenum.h>
 
 #include <vector>
 
@@ -333,6 +334,24 @@ static void umsg_set_timezone(MessageFor
 		return; /* already done */
 	}
 
+	/* There is a bug in ICU which prevents MessageFormatter::getFormats()
+	   to handle more than 10 formats correctly. The enumerator could be
+	   used to walk through the present formatters using getFormat(), which
+	   however seems to provide just a readonly access. This workaround
+	   prevents crash when there are > 10 formats but doesn't set any error.
+	   As a result, only DateFormatters with > 10 subformats are affected.
+	   This workaround should be ifdef'd out, when the bug has been fixed
+	   in ICU. */
+	icu::StringEnumeration* fnames = mf->getFormatNames(err.code);
+	if (!fnames || U_FAILURE(err.code)) {
+		return;
+	}
+	count = fnames->count(err.code);
+	delete fnames;
+	if (count > 10) {
+		return;
+	}
+
 	formats = mf->getFormats(count);
 
 	if (formats == NULL) {
diff -pruN 7.2.9-1/ext/intl/tests/bug74484_MessageFormatter.phpt 7.2.11-3/ext/intl/tests/bug74484_MessageFormatter.phpt
--- 7.2.9-1/ext/intl/tests/bug74484_MessageFormatter.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/intl/tests/bug74484_MessageFormatter.phpt	2018-10-09 15:09:46.000000000 +0000
@@ -0,0 +1,33 @@
+--TEST--
+Bug #74484 MessageFormatter::formatMessage memory corruption with 11+ named placeholder
+--SKIPIF--
+<?php
+if (!extension_loaded('intl'))
+	die('skip intl extension not enabled');
+?>
+--FILE--
+<?php
+$text = "{a} {b} {c} {d} {e} {f} {g} {h} {i} {j} {k} {l}";
+
+$vars = array(
+  'a' => 1,
+  'b' => 2,
+  'c' => 3,
+  'd' => 4,
+  'e' => 5,
+  'f' => 6,
+  'g' => 7,
+  'h' => 8,
+  'i' => 9,
+  'j' => 10,
+  'k' => 11,
+  'l' => 12
+);
+
+var_dump(MessageFormatter::formatMessage('en_US', $text, $vars));
+
+?>
+==DONE==
+--EXPECT--
+string(26) "1 2 3 4 5 6 7 8 9 10 11 12"
+==DONE==
diff -pruN 7.2.9-1/ext/libxml/libxml.c 7.2.11-3/ext/libxml/libxml.c
--- 7.2.9-1/ext/libxml/libxml.c	2018-08-14 14:26:41.000000000 +0000
+++ 7.2.11-3/ext/libxml/libxml.c	2018-10-09 15:09:49.000000000 +0000
@@ -591,12 +591,12 @@ static xmlParserInputPtr _php_libxml_ext
 	if (ID != NULL) {
 		ZVAL_STRING(&params[0], ID);
 	} else {
-		ZVAL_UNDEF(&params[0]);
+		ZVAL_NULL(&params[0]);
 	}
 	if (URL != NULL) {
 		ZVAL_STRING(&params[1], URL);
 	} else {
-		ZVAL_UNDEF(&params[1]);
+		ZVAL_NULL(&params[1]);
 	}
 	ctxzv = &params[2];
 	array_init_size(ctxzv, 4);
diff -pruN 7.2.9-1/ext/libxml/tests/bug76777.phpt 7.2.11-3/ext/libxml/tests/bug76777.phpt
--- 7.2.9-1/ext/libxml/tests/bug76777.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/libxml/tests/bug76777.phpt	2018-10-09 15:09:49.000000000 +0000
@@ -0,0 +1,43 @@
+--TEST--
+Bug #76777 (first parameter of libxml_set_external_entity_loader callback undefined)
+--SKIPIF--
+<?php
+if (!extension_loaded('libxml')) die('skip');
+if (getenv("SKIP_ONLINE_TESTS")) die('skip online test');
+?>
+--FILE--
+<?php
+$xml=<<<EOF
+<?xml version="1.0"?>
+<test/>
+EOF;
+
+$xsd=<<<EOF
+<?xml version="1.0"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:include schemaLocation="nonexistent.xsd"/>
+  <xs:element name="test"/>
+</xs:schema>
+EOF;
+
+libxml_set_external_entity_loader(function($p,$s,$c) {
+    var_dump($p,$s,$c);
+    die();
+});
+
+$dom=new DOMDocument($xml);
+$dom->schemaValidateSource($xsd);
+?>
+--EXPECTF--
+NULL
+string(15) "nonexistent.xsd"
+array(4) {
+  ["directory"]=>
+  NULL
+  ["intSubName"]=>
+  NULL
+  ["extSubURI"]=>
+  NULL
+  ["extSubSystem"]=>
+  NULL
+}
diff -pruN 7.2.9-1/ext/mbstring/mbstring.c 7.2.11-3/ext/mbstring/mbstring.c
--- 7.2.9-1/ext/mbstring/mbstring.c	2018-08-14 14:26:40.000000000 +0000
+++ 7.2.11-3/ext/mbstring/mbstring.c	2018-10-09 15:09:48.000000000 +0000
@@ -702,7 +702,7 @@ static sapi_post_entry mbstr_post_entrie
 /* }}} */
 
 /* {{{ static int php_mb_parse_encoding_list()
- *  Return 0 if input contains any illegal encoding, otherwise 1.
+ *  Return FAILURE if input contains any illegal encoding, otherwise SUCCESS.
  *  Even if any illegal encoding is detected the result may contain a list
  *  of parsed encodings.
  */
@@ -779,7 +779,7 @@ php_mb_parse_encoding_list(const char *v
 					*entry++ = encoding;
 					n++;
 				} else {
-					ret = 0;
+					ret = FAILURE;
 				}
 			}
 			p1 = p2 + 1;
@@ -795,7 +795,7 @@ php_mb_parse_encoding_list(const char *v
 			if (return_list) {
 				*return_list = NULL;
 			}
-			ret = 0;
+			ret = FAILURE;
 		}
 		if (return_size) {
 			*return_size = n;
@@ -808,7 +808,7 @@ php_mb_parse_encoding_list(const char *v
 /* }}} */
 
 /* {{{ static int php_mb_parse_encoding_array()
- *  Return 0 if input contains any illegal encoding, otherwise 1.
+ *  Return FAILURE if input contains any illegal encoding, otherwise SUCCESS.
  *  Even if any illegal encoding is detected the result may contain a list
  *  of parsed encodings.
  */
diff -pruN 7.2.9-1/ext/mbstring/tests/bug76704.phpt 7.2.11-3/ext/mbstring/tests/bug76704.phpt
--- 7.2.9-1/ext/mbstring/tests/bug76704.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/mbstring/tests/bug76704.phpt	2018-10-09 15:09:48.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+Bug #76704 (mb_detect_order return value varies based on argument type)
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
+?>
+--FILE--
+<?php
+var_dump(mb_detect_order('Foo, UTF-8'));
+var_dump(mb_detect_order(['Foo', 'UTF-8']))
+?>
+===DONE===
+--EXPECT--
+bool(false)
+bool(false)
+===DONE===
diff -pruN 7.2.9-1/ext/mysqli/tests/mysqli_stmt_bind_result_format.phpt 7.2.11-3/ext/mysqli/tests/mysqli_stmt_bind_result_format.phpt
--- 7.2.9-1/ext/mysqli/tests/mysqli_stmt_bind_result_format.phpt	2018-08-14 14:26:44.000000000 +0000
+++ 7.2.11-3/ext/mysqli/tests/mysqli_stmt_bind_result_format.phpt	2018-10-09 15:09:53.000000000 +0000
@@ -210,11 +210,11 @@ memory_limit=83886080
 	if (mysqli_query($link, "CREATE TABLE `test` (
   `targetport` int(11) NOT NULL default '0',
   `sources` double(17,4) default NULL,
-  `current_sources` double(17,0) default NULL,
+  `current_sources` double(17,4) default NULL,
   `reports` double(17,4) default NULL,
-  `current_reports` double(17,0) default NULL,
+  `current_reports` double(17,4) default NULL,
   `targets` double(17,4) default NULL,
-  `current_targets` double(17,0) default NULL,
+  `current_targets` double(17,4) default NULL,
   `maxsources` int(11) default NULL,
   `maxtargets` int(11) default NULL,
   `maxreports` int(11) default NULL,
@@ -239,7 +239,7 @@ memory_limit=83886080
 					printf("[301] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
 					break 2;
 				}
-				if ($current_targets > 0 && $trend != 'NULL')
+				if ($current_targets > 0 && $trend !== 'NULL')
 					$values[$trend] = $i;
 			}
 			krsort($values);
diff -pruN 7.2.9-1/ext/mysqlnd/mysqlnd_auth.c 7.2.11-3/ext/mysqlnd/mysqlnd_auth.c
--- 7.2.9-1/ext/mysqlnd/mysqlnd_auth.c	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/mysqlnd/mysqlnd_auth.c	2018-10-09 15:09:46.000000000 +0000
@@ -89,7 +89,6 @@ mysqlnd_run_authentication(
 			}
 		}
 
-
 		{
 			zend_uchar * switch_to_auth_protocol_data = NULL;
 			size_t switch_to_auth_protocol_data_len = 0;
@@ -114,11 +113,10 @@ mysqlnd_run_authentication(
 			DBG_INF_FMT("salt(%d)=[%.*s]", plugin_data_len, plugin_data_len, plugin_data);
 			/* The data should be allocated with malloc() */
 			if (auth_plugin) {
-				scrambled_data = auth_plugin->methods.get_auth_data(
-					NULL, &scrambled_data_len, conn, user, passwd,
-					passwd_len, plugin_data, plugin_data_len,
-					session_options, conn->protocol_frame_codec->data,
-					mysql_flags);
+				scrambled_data =
+					auth_plugin->methods.get_auth_data(NULL, &scrambled_data_len, conn, user, passwd, passwd_len,
+													   plugin_data, plugin_data_len, session_options,
+													   conn->protocol_frame_codec->data, mysql_flags);
 			}
 
 			if (conn->error_info->error_no) {
@@ -129,7 +127,6 @@ mysqlnd_run_authentication(
 											charset_no,
 											first_call,
 											requested_protocol,
-											auth_plugin, plugin_data, plugin_data_len,
 											scrambled_data, scrambled_data_len,
 											&switch_to_auth_protocol, &switch_to_auth_protocol_len,
 											&switch_to_auth_protocol_data, &switch_to_auth_protocol_data_len
@@ -251,9 +248,6 @@ mysqlnd_auth_handshake(MYSQLND_CONN_DATA
 							  unsigned int server_charset_no,
 							  zend_bool use_full_blown_auth_packet,
 							  const char * const auth_protocol,
-							  struct st_mysqlnd_authentication_plugin * auth_plugin,
-							  const zend_uchar * const orig_auth_plugin_data,
-							  const size_t orig_auth_plugin_data_len,
 							  const zend_uchar * const auth_plugin_data,
 							  const size_t auth_plugin_data_len,
 							  char ** switch_to_auth_protocol,
@@ -324,11 +318,6 @@ mysqlnd_auth_handshake(MYSQLND_CONN_DATA
 		conn->charset = mysqlnd_find_charset_nr(auth_packet->charset_no);
 	}
 
-	if (auth_plugin && auth_plugin->methods.handle_server_response) {
-		auth_plugin->methods.handle_server_response(auth_plugin, conn,
-			orig_auth_plugin_data, orig_auth_plugin_data_len, passwd, passwd_len);
-	}
-
 	if (FAIL == PACKET_READ(auth_resp_packet) || auth_resp_packet->response_code >= 0xFE) {
 		if (auth_resp_packet->response_code == 0xFE) {
 			/* old authentication with new server  !*/
@@ -624,8 +613,7 @@ static struct st_mysqlnd_authentication_
 		}
 	},
 	{/* methods */
-		mysqlnd_native_auth_get_auth_data,
-		NULL
+		mysqlnd_native_auth_get_auth_data
 	}
 };
 
@@ -674,8 +662,7 @@ static struct st_mysqlnd_authentication_
 		}
 	},
 	{/* methods */
-		mysqlnd_pam_auth_get_auth_data,
-		NULL
+		mysqlnd_pam_auth_get_auth_data
 	}
 };
 
@@ -859,283 +846,17 @@ static struct st_mysqlnd_authentication_
 		}
 	},
 	{/* methods */
-		mysqlnd_sha256_auth_get_auth_data,
-		NULL
+		mysqlnd_sha256_auth_get_auth_data
 	}
 };
 #endif
 
-/*************************************** CACHING SHA2 Password *******************************/
-
-#undef L64
-
-#include "ext/hash/php_hash.h"
-#include "ext/hash/php_hash_sha.h"
-
-#define SHA256_LENGTH 32
-
-/* {{{ php_mysqlnd_scramble_sha2 */
-void php_mysqlnd_scramble_sha2(zend_uchar * const buffer, const zend_uchar * const scramble, const zend_uchar * const password, const size_t password_len)
-{
-	PHP_SHA256_CTX context;
-	zend_uchar sha1[SHA256_LENGTH];
-	zend_uchar sha2[SHA256_LENGTH];
-
-	/* Phase 1: hash password */
-	PHP_SHA256Init(&context);
-	PHP_SHA256Update(&context, password, password_len);
-	PHP_SHA256Final(sha1, &context);
-
-	/* Phase 2: hash sha1 */
-	PHP_SHA256Init(&context);
-	PHP_SHA256Update(&context, (zend_uchar*)sha1, SHA256_LENGTH);
-	PHP_SHA256Final(sha2, &context);
-
-	/* Phase 3: hash scramble + sha2 */
-	PHP_SHA256Init(&context);
-	PHP_SHA256Update(&context, (zend_uchar*)sha2, SHA256_LENGTH);
-	PHP_SHA256Update(&context, scramble, SCRAMBLE_LENGTH);
-	PHP_SHA256Final(buffer, &context);
-
-	/* let's crypt buffer now */
-	php_mysqlnd_crypt(buffer, (const zend_uchar *)sha1, (const zend_uchar *)buffer, SHA256_LENGTH);
-}
-/* }}} */
-
-
-/* {{{ mysqlnd_native_auth_get_auth_data */
-static zend_uchar *
-mysqlnd_caching_sha2_get_auth_data(struct st_mysqlnd_authentication_plugin * self,
-								   size_t * auth_data_len,
-							 	   MYSQLND_CONN_DATA * conn, const char * const user, const char * const passwd,
-								   const size_t passwd_len, zend_uchar * auth_plugin_data, size_t auth_plugin_data_len,
-								   const MYSQLND_SESSION_OPTIONS * const session_options,
-								   const MYSQLND_PFC_DATA * const pfc_data,
-								   zend_ulong mysql_flags
-								  )
-{
-	zend_uchar * ret = NULL;
-	DBG_ENTER("mysqlnd_caching_sha2_get_auth_data");
-	DBG_INF_FMT("salt(%d)=[%.*s]", auth_plugin_data_len, auth_plugin_data_len, auth_plugin_data);
-	*auth_data_len = 0;
-
-	DBG_INF("First auth step: send hashed password");
-	/* copy scrambled pass*/
-	if (passwd && passwd_len) {
-		ret = malloc(SHA256_LENGTH + 1);
-		*auth_data_len = SHA256_LENGTH;
-		php_mysqlnd_scramble_sha2((zend_uchar*)ret, auth_plugin_data, (zend_uchar*)passwd, passwd_len);
-		ret[SHA256_LENGTH] = '\0';
-		DBG_INF_FMT("hash(%d)=[%.*s]", *auth_data_len, *auth_data_len, ret);
-	}
-
-	DBG_RETURN(ret);
-}
-/* }}} */
-
-#ifdef MYSQLND_HAVE_SSL
-static RSA *
-mysqlnd_caching_sha2_get_key(MYSQLND_CONN_DATA *conn)
-{
-	RSA * ret = NULL;
-	const MYSQLND_PFC_DATA * const pfc_data = conn->protocol_frame_codec->data;
-	const char * fname = (pfc_data->sha256_server_public_key && pfc_data->sha256_server_public_key[0] != '\0')?
-								pfc_data->sha256_server_public_key:
-								MYSQLND_G(sha256_server_public_key);
-	php_stream * stream;
-	DBG_ENTER("mysqlnd_cached_sha2_get_key");
-	DBG_INF_FMT("options_s256_pk=[%s] MYSQLND_G(sha256_server_public_key)=[%s]",
-				 pfc_data->sha256_server_public_key? pfc_data->sha256_server_public_key:"n/a",
-				 MYSQLND_G(sha256_server_public_key)? MYSQLND_G(sha256_server_public_key):"n/a");
-	if (!fname || fname[0] == '\0') {
-		MYSQLND_PACKET_CACHED_SHA2_RESULT *req_packet = NULL;
-		MYSQLND_PACKET_SHA256_PK_REQUEST_RESPONSE *pk_resp_packet = NULL;
-
-		do {
-			DBG_INF("requesting the public key from the server");
-			req_packet = conn->payload_decoder_factory->m.get_cached_sha2_result_packet(conn->payload_decoder_factory, FALSE);
-			pk_resp_packet = conn->payload_decoder_factory->m.get_sha256_pk_request_response_packet(conn->payload_decoder_factory, FALSE);
-			req_packet->request = 1;
-
-			if (! PACKET_WRITE(req_packet)) {
-				DBG_ERR_FMT("Error while sending public key request packet");
-				php_error(E_WARNING, "Error while sending public key request packet. PID=%d", getpid());
-				SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
-				break;
-			}
-			if (FAIL == PACKET_READ(pk_resp_packet) || NULL == pk_resp_packet->public_key) {
-				DBG_ERR_FMT("Error while receiving public key");
-				php_error(E_WARNING, "Error while receiving public key. PID=%d", getpid());
-				SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
-				break;
-			}
-			DBG_INF_FMT("Public key(%d):\n%s", pk_resp_packet->public_key_len, pk_resp_packet->public_key);
-			/* now extract the public key */
-			{
-				BIO * bio = BIO_new_mem_buf(pk_resp_packet->public_key, pk_resp_packet->public_key_len);
-				ret = PEM_read_bio_RSA_PUBKEY(bio, NULL, NULL, NULL);
-				BIO_free(bio);
-			}
-		} while (0);
-		PACKET_FREE(req_packet);
-		PACKET_FREE(pk_resp_packet);
-
-		DBG_INF_FMT("ret=%p", ret);
-		DBG_RETURN(ret);
-
-		SET_CLIENT_ERROR(conn->error_info, CR_UNKNOWN_ERROR, UNKNOWN_SQLSTATE,
-			"caching_sha2_server_public_key is not set for the connection or as mysqlnd.sha256_server_public_key");
-		DBG_ERR("server_public_key is not set");
-		DBG_RETURN(NULL);
-	} else {
-		zend_string * key_str;
-		DBG_INF_FMT("Key in a file. [%s]", fname);
-		stream = php_stream_open_wrapper((char *) fname, "rb", REPORT_ERRORS, NULL);
-
-		if (stream) {
-			if ((key_str = php_stream_copy_to_mem(stream, PHP_STREAM_COPY_ALL, 0)) != NULL) {
-				BIO * bio = BIO_new_mem_buf(ZSTR_VAL(key_str), ZSTR_LEN(key_str));
-				ret = PEM_read_bio_RSA_PUBKEY(bio, NULL, NULL, NULL);
-				BIO_free(bio);
-				DBG_INF("Successfully loaded");
-				DBG_INF_FMT("Public key:%*.s", ZSTR_LEN(key_str), ZSTR_VAL(key_str));
-				zend_string_release(key_str);
-			}
-			php_stream_close(stream);
-		}
-	}
-	DBG_RETURN(ret);
-
-}
-#endif
-
-
-/* {{{ mysqlnd_caching_sha2_get_key */
-static size_t
-mysqlnd_caching_sha2_get_and_use_key(MYSQLND_CONN_DATA *conn,
-		const zend_uchar * auth_plugin_data, size_t auth_plugin_data_len,
-		unsigned char **crypted,
-		const char * const passwd,
-		const size_t passwd_len)
-{
-#ifdef MYSQLND_HAVE_SSL
-	static RSA *server_public_key;
-	server_public_key = mysqlnd_caching_sha2_get_key(conn);
-
-	DBG_ENTER("mysqlnd_caching_sha2_get_and_use_key(");
-
-	if (server_public_key) {
-		int server_public_key_len;
-		char xor_str[passwd_len + 1];
-		memcpy(xor_str, passwd, passwd_len);
-		xor_str[passwd_len] = '\0';
-		mysqlnd_xor_string(xor_str, passwd_len, (char *) auth_plugin_data, auth_plugin_data_len);
-
-		server_public_key_len = RSA_size(server_public_key);
-		/*
-		  Because RSA_PKCS1_OAEP_PADDING is used there is a restriction on the passwd_len.
-		  RSA_PKCS1_OAEP_PADDING is recommended for new applications. See more here:
-		  http://www.openssl.org/docs/crypto/RSA_public_encrypt.html
-		*/
-		if ((size_t) server_public_key_len - 41 <= passwd_len) {
-			/* password message is to long */
-			SET_CLIENT_ERROR(conn->error_info, CR_UNKNOWN_ERROR, UNKNOWN_SQLSTATE, "password is too long");
-			DBG_ERR("password is too long");
-			DBG_RETURN(0);
-		}
-
-		*crypted = emalloc(server_public_key_len);
-		RSA_public_encrypt(passwd_len + 1, (zend_uchar *) xor_str, *crypted, server_public_key, RSA_PKCS1_OAEP_PADDING);
-		DBG_RETURN(server_public_key_len);
-	}
-	DBG_RETURN(0);
-#else
-	DBG_ENTER("mysqlnd_caching_sha2_get_and_use_key(");
-	php_error_docref(NULL, E_WARNING, "PHP was built without openssl extension, can't send password encrypted");
-	DBG_RETURN(0);
-#endif
-}
-/* }}} */
-
-/* {{{ mysqlnd_native_auth_get_auth_data */
-static void
-mysqlnd_caching_sha2_handle_server_response(struct st_mysqlnd_authentication_plugin *self,
-		MYSQLND_CONN_DATA * conn,
-		const zend_uchar * auth_plugin_data, size_t auth_plugin_data_len,
-		const char * const passwd,
-		const size_t passwd_len)
-{
-	DBG_ENTER("mysqlnd_caching_sha2_handle_server_response");
-	MYSQLND_PACKET_CACHED_SHA2_RESULT *result_packet;
-	result_packet = conn->payload_decoder_factory->m.get_cached_sha2_result_packet(conn->payload_decoder_factory, FALSE);
-
-	if (FAIL == PACKET_READ(result_packet)) {
-		DBG_VOID_RETURN;
-	}
-
-	switch (result_packet->response_code) {
-		case 3:
-			DBG_INF("fast path suceeded");
-			PACKET_FREE(result_packet);
-			DBG_VOID_RETURN;
-		case 4:
-			if (conn->vio->data->ssl || conn->unix_socket.s) {
-				DBG_INF("fast path failed, doing full auth via SSL");
-				result_packet->password = (zend_uchar *)passwd;
-				result_packet->password_len = passwd_len + 1;
-				PACKET_WRITE(result_packet);
-			} else {
-				DBG_INF("fast path failed, doing full auth without SSL");
-				result_packet->password_len = mysqlnd_caching_sha2_get_and_use_key(conn, auth_plugin_data, auth_plugin_data_len, &result_packet->password, passwd, passwd_len);
-				PACKET_WRITE(result_packet);
-				efree(result_packet->password);
-			}
-			PACKET_FREE(result_packet);
-			DBG_VOID_RETURN;
-		case 2:
-			// The server tried to send a key, which we didn't expect
-			// fall-through
-		default:
-			php_error_docref(NULL, E_WARNING, "Unexpected server respose while doing caching_sha2 auth: %i", result_packet->response_code);
-	}
-
-	PACKET_FREE(result_packet);
-
-	DBG_VOID_RETURN;
-}
-/* }}} */
-
-static struct st_mysqlnd_authentication_plugin mysqlnd_caching_sha2_auth_plugin =
-{
-	{
-		MYSQLND_PLUGIN_API_VERSION,
-		"auth_plugin_caching_sha2_password",
-		MYSQLND_VERSION_ID,
-		PHP_MYSQLND_VERSION,
-		"PHP License 3.01",
-		"Johannes Schlüter <johannes.schlueter@php.net>",
-		{
-			NULL, /* no statistics , will be filled later if there are some */
-			NULL, /* no statistics */
-		},
-		{
-			NULL /* plugin shutdown */
-		}
-	},
-	{/* methods */
-		mysqlnd_caching_sha2_get_auth_data,
-		mysqlnd_caching_sha2_handle_server_response
-	}
-};
-
-
 /* {{{ mysqlnd_register_builtin_authentication_plugins */
 void
 mysqlnd_register_builtin_authentication_plugins(void)
 {
 	mysqlnd_plugin_register_ex((struct st_mysqlnd_plugin_header *) &mysqlnd_native_auth_plugin);
 	mysqlnd_plugin_register_ex((struct st_mysqlnd_plugin_header *) &mysqlnd_pam_authentication_plugin);
-	mysqlnd_plugin_register_ex((struct st_mysqlnd_plugin_header *) &mysqlnd_caching_sha2_auth_plugin);
 #ifdef MYSQLND_HAVE_SSL
 	mysqlnd_plugin_register_ex((struct st_mysqlnd_plugin_header *) &mysqlnd_sha256_authentication_plugin);
 #endif
diff -pruN 7.2.9-1/ext/mysqlnd/mysqlnd_auth.h 7.2.11-3/ext/mysqlnd/mysqlnd_auth.h
--- 7.2.9-1/ext/mysqlnd/mysqlnd_auth.h	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/mysqlnd/mysqlnd_auth.h	2018-10-09 15:09:46.000000000 +0000
@@ -31,9 +31,26 @@ mysqlnd_auth_handshake(MYSQLND_CONN_DATA
 						unsigned int server_charset_no,
 						zend_bool use_full_blown_auth_packet,
 						const char * const auth_protocol,
-						struct st_mysqlnd_authentication_plugin * auth_plugin,
-						const zend_uchar * const orig_auth_plugin_data,
-						const size_t orig_auth_plugin_data_len,
+						const zend_uchar * const auth_plugin_data,
+						const size_t auth_plugin_data_len,
+						char ** switch_to_auth_protocol,
+						size_t * switch_to_auth_protocol_len,
+						zend_uchar ** switch_to_auth_protocol_data,
+						size_t * switch_to_auth_protocol_data_len
+						);
+
+enum_func_status
+mysqlnd_auth_handshake(MYSQLND_CONN_DATA * conn,
+						const char * const user,
+						const char * const passwd,
+						const size_t passwd_len,
+						const char * const db,
+						const size_t db_len,
+						const MYSQLND_SESSION_OPTIONS * const session_options,
+						zend_ulong mysql_flags,
+						unsigned int server_charset_no,
+						zend_bool use_full_blown_auth_packet,
+						const char * const auth_protocol,
 						const zend_uchar * const auth_plugin_data,
 						const size_t auth_plugin_data_len,
 						char ** switch_to_auth_protocol,
diff -pruN 7.2.9-1/ext/mysqlnd/mysqlnd_connection.c 7.2.11-3/ext/mysqlnd/mysqlnd_connection.c
--- 7.2.9-1/ext/mysqlnd/mysqlnd_connection.c	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/mysqlnd/mysqlnd_connection.c	2018-10-09 15:09:46.000000000 +0000
@@ -678,13 +678,9 @@ MYSQLND_METHOD(mysqlnd_conn_data, connec
 
 	{
 		const MYSQLND_CSTRING scheme = { transport.s, transport.l };
-		/* This will be overwritten below with a copy, but we can use it during authentication */
-		conn->unix_socket.s = (char *)socket_or_pipe.s;
 		if (FAIL == conn->m->connect_handshake(conn, &scheme, &username, &password, &database, mysql_flags)) {
-			conn->unix_socket.s = NULL;
 			goto err;
 		}
-		conn->unix_socket.s = NULL;
 	}
 
 	{
diff -pruN 7.2.9-1/ext/mysqlnd/mysqlnd_enum_n_def.h 7.2.11-3/ext/mysqlnd/mysqlnd_enum_n_def.h
--- 7.2.9-1/ext/mysqlnd/mysqlnd_enum_n_def.h	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/mysqlnd/mysqlnd_enum_n_def.h	2018-10-09 15:09:46.000000000 +0000
@@ -631,7 +631,6 @@ enum mysqlnd_packet_type
 	PROT_CHG_USER_RESP_PACKET,
 	PROT_SHA256_PK_REQUEST_PACKET,
 	PROT_SHA256_PK_REQUEST_RESPONSE_PACKET,
-	PROT_CACHED_SHA2_RESULT_PACKET,
 	PROT_LAST /* should always be last */
 };
 
diff -pruN 7.2.9-1/ext/mysqlnd/mysqlnd_structs.h 7.2.11-3/ext/mysqlnd/mysqlnd_structs.h
--- 7.2.9-1/ext/mysqlnd/mysqlnd_structs.h	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/mysqlnd/mysqlnd_structs.h	2018-10-09 15:09:46.000000000 +0000
@@ -970,7 +970,6 @@ struct st_mysqlnd_packet_chg_user_resp;
 struct st_mysqlnd_packet_auth_pam;
 struct st_mysqlnd_packet_sha256_pk_request;
 struct st_mysqlnd_packet_sha256_pk_request_response;
-struct st_mysqlnd_packet_cached_sha2_result;
 
 typedef struct st_mysqlnd_packet_greet *		(*func_mysqlnd_protocol_payload_decoder_factory__get_greet_packet)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const factory, const zend_bool persistent);
 typedef struct st_mysqlnd_packet_auth *			(*func_mysqlnd_protocol_payload_decoder_factory__get_auth_packet)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const factory, const zend_bool persistent);
@@ -987,7 +986,6 @@ typedef struct st_mysqlnd_packet_prepare
 typedef struct st_mysqlnd_packet_chg_user_resp*(*func_mysqlnd_protocol_payload_decoder_factory__get_change_user_response_packet)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const factory, const zend_bool persistent);
 typedef struct st_mysqlnd_packet_sha256_pk_request *(*func_mysqlnd_protocol_payload_decoder_factory__get_sha256_pk_request_packet)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const factory, const zend_bool persistent);
 typedef struct st_mysqlnd_packet_sha256_pk_request_response *(*func_mysqlnd_protocol_payload_decoder_factory__get_sha256_pk_request_response_packet)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const factory, const zend_bool persistent);
-typedef struct st_mysqlnd_packet_cached_sha2_result *(*func_mysqlnd_protocol_payload_decoder_factory__get_cached_sha2_result_packet)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const factory, const zend_bool persistent);
 
 typedef enum_func_status (*func_mysqlnd_protocol_payload_decoder_factory__send_command)(
 			MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory,
@@ -1045,7 +1043,6 @@ MYSQLND_CLASS_METHODS_TYPE(mysqlnd_proto
 	func_mysqlnd_protocol_payload_decoder_factory__get_change_user_response_packet get_change_user_response_packet;
 	func_mysqlnd_protocol_payload_decoder_factory__get_sha256_pk_request_packet get_sha256_pk_request_packet;
 	func_mysqlnd_protocol_payload_decoder_factory__get_sha256_pk_request_response_packet get_sha256_pk_request_response_packet;
-	func_mysqlnd_protocol_payload_decoder_factory__get_cached_sha2_result_packet get_cached_sha2_result_packet;
 
 	func_mysqlnd_protocol_payload_decoder_factory__send_command send_command;
 	func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_response send_command_handle_response;
@@ -1358,18 +1355,11 @@ typedef zend_uchar * (*func_auth_plugin_
 														const MYSQLND_PFC_DATA * const pfc_data, zend_ulong mysql_flags
 														);
 
-typedef void (*func_auth_plugin__handle_server_response)(struct st_mysqlnd_authentication_plugin * self, 
-		MYSQLND_CONN_DATA * conn,
-		const zend_uchar * auth_plugin_data, size_t auth_plugin_data_len,
-		const char * const passwd,
-		const size_t passwd_len);
-
 struct st_mysqlnd_authentication_plugin
 {
 	struct st_mysqlnd_plugin_header plugin_header;
 	struct {
 		func_auth_plugin__get_auth_data get_auth_data;
-		func_auth_plugin__handle_server_response handle_server_response;
 	} methods;
 };
 
diff -pruN 7.2.9-1/ext/mysqlnd/mysqlnd_wireprotocol.c 7.2.11-3/ext/mysqlnd/mysqlnd_wireprotocol.c
--- 7.2.9-1/ext/mysqlnd/mysqlnd_wireprotocol.c	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/mysqlnd/mysqlnd_wireprotocol.c	2018-10-09 15:09:46.000000000 +0000
@@ -2273,85 +2273,7 @@ php_mysqlnd_sha256_pk_request_response_f
 }
 /* }}} */
 
-static
-size_t php_mysqlnd_cached_sha2_result_write(void * _packet)
-{
-	MYSQLND_PACKET_CACHED_SHA2_RESULT * packet= (MYSQLND_PACKET_CACHED_SHA2_RESULT *) _packet;
-	MYSQLND_ERROR_INFO * error_info = packet->header.error_info;
-	MYSQLND_PFC * pfc = packet->header.protocol_frame_codec;
-	MYSQLND_VIO * vio = packet->header.vio;
-	MYSQLND_STATS * stats = packet->header.stats;
-#ifndef _MSC_VER
-	zend_uchar buffer[MYSQLND_HEADER_SIZE + packet->password_len + 1];
-#else
-	ALLOCA_FLAG(use_heap)
-	zend_uchar *buffer = do_alloca(MYSQLND_HEADER_SIZE + packet->password_len + 1, use_heap);
-#endif
-	size_t sent;
-
-	DBG_ENTER("php_mysqlnd_cached_sha2_result_write");
-
-	if (packet->request == 1) {
-		int1store(buffer + MYSQLND_HEADER_SIZE, '\2');
-		sent = pfc->data->m.send(pfc, vio, buffer, 1, stats, error_info);
-	} else {
-		memcpy(buffer + MYSQLND_HEADER_SIZE, packet->password, packet->password_len);
-		sent = pfc->data->m.send(pfc, vio, buffer, packet->password_len, stats, error_info);
-	}
-
-#ifdef _MSC_VER
-	free_alloca(buffer, use_heap);
-#endif
 
-	DBG_RETURN(sent);
-}
-
-static enum_func_status
-php_mysqlnd_cached_sha2_result_read(void * _packet)
-{
-	MYSQLND_PACKET_CACHED_SHA2_RESULT * packet= (MYSQLND_PACKET_CACHED_SHA2_RESULT *) _packet;
-	MYSQLND_ERROR_INFO * error_info = packet->header.error_info;
-	MYSQLND_PFC * pfc = packet->header.protocol_frame_codec;
-	MYSQLND_VIO * vio = packet->header.vio;
-	MYSQLND_STATS * stats = packet->header.stats;
-	MYSQLND_CONNECTION_STATE * connection_state = packet->header.connection_state;
-	zend_uchar buf[SHA256_PK_REQUEST_RESP_BUFFER_SIZE];
-	zend_uchar *p = buf;
-	const zend_uchar * const begin = buf;
-
-	DBG_ENTER("php_mysqlnd_cached_sha2_result_read");
-	if (FAIL == mysqlnd_read_packet_header_and_body(&(packet->header), pfc, vio, stats, error_info, connection_state, buf, sizeof(buf), "PROT_CACHED_SHA2_RESULT_PACKET", PROT_CACHED_SHA2_RESULT_PACKET)) {
-		DBG_RETURN(FAIL);
-	}
-	BAIL_IF_NO_MORE_DATA;
-
-	p++;
-	packet->response_code = uint1korr(p);
-	BAIL_IF_NO_MORE_DATA;
-
-	p++;
-	packet->result = uint1korr(p);
-	BAIL_IF_NO_MORE_DATA;
-
-	DBG_RETURN(PASS);
-
-premature_end:
-	DBG_ERR_FMT("OK packet %d bytes shorter than expected", p - begin - packet->header.size);
-	php_error_docref(NULL, E_WARNING, "SHA256_PK_REQUEST_RESPONSE packet "MYSQLND_SZ_T_SPEC" bytes shorter than expected",
-					 p - begin - packet->header.size);
-	DBG_RETURN(FAIL);
-}
-
-static void
-php_mysqlnd_cached_sha2_result_free_mem(void * _packet, zend_bool stack_allocation)
-{
-	MYSQLND_PACKET_CACHED_SHA2_RESULT * p = (MYSQLND_PACKET_CACHED_SHA2_RESULT *) _packet;
-
-	if (!stack_allocation) {
-		mnd_pefree(p, p->header.persistent);
-	}
-}
-/* }}} */
 /* {{{ packet_methods */
 static
 mysqlnd_packet_methods packet_methods[PROT_LAST] =
@@ -2445,15 +2367,9 @@ mysqlnd_packet_methods packet_methods[PR
 		php_mysqlnd_sha256_pk_request_response_read,
 		NULL, /* write */
 		php_mysqlnd_sha256_pk_request_response_free_mem,
-	}, /* PROT_SHA256_PK_REQUEST_RESPONSE_PACKET */
-	{
-		sizeof(MYSQLND_PACKET_CACHED_SHA2_RESULT),
-		php_mysqlnd_cached_sha2_result_read,
-		php_mysqlnd_cached_sha2_result_write,
-		php_mysqlnd_cached_sha2_result_free_mem
-	} /* PROT_CACHED_SHA2_RESULT_PACKET */
+	} /* PROT_SHA256_PK_REQUEST_RESPONSE_PACKET */
 };
-/* }}} */     
+/* }}} */
 
 
 /* {{{ mysqlnd_protocol::get_greet_packet */
@@ -2802,30 +2718,6 @@ MYSQLND_METHOD(mysqlnd_protocol, get_sha
 }
 /* }}} */
 
-/* {{{ mysqlnd_protocol::init_cached_sha2_result_packet */
-static struct st_mysqlnd_packet_cached_sha2_result *
-MYSQLND_METHOD(mysqlnd_protocol, get_cached_sha2_result_packet)
-(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const factory, const zend_bool persistent)
-{
-	struct st_mysqlnd_packet_cached_sha2_result * packet = mnd_pecalloc(1, packet_methods[PROT_CACHED_SHA2_RESULT_PACKET].struct_size, persistent);
-	DBG_ENTER("mysqlnd_protocol::init_cached_sha2_result_packet");
-	if (packet) {
-		memset(packet, 0, sizeof(*packet));
-		packet->header.m = &packet_methods[PROT_CACHED_SHA2_RESULT_PACKET];
-		packet->header.factory = factory;
-
-		packet->header.protocol_frame_codec = factory->conn->protocol_frame_codec;
-		packet->header.vio = factory->conn->vio;
-		packet->header.stats = factory->conn->stats;
-		packet->header.error_info = factory->conn->error_info;
-		packet->header.connection_state = &factory->conn->state;
-
-		packet->header.persistent = persistent;
-	}
-	DBG_RETURN(packet);
-}
-/* }}} */
-
 
 /* {{{ mysqlnd_protocol::send_command */
 static enum_func_status
@@ -3056,7 +2948,6 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_prot
 	MYSQLND_METHOD(mysqlnd_protocol, get_change_user_response_packet),
 	MYSQLND_METHOD(mysqlnd_protocol, get_sha256_pk_request_packet),
 	MYSQLND_METHOD(mysqlnd_protocol, get_sha256_pk_request_response_packet),
-	MYSQLND_METHOD(mysqlnd_protocol, get_cached_sha2_result_packet),
 
 	MYSQLND_METHOD(mysqlnd_protocol, send_command),
 	MYSQLND_METHOD(mysqlnd_protocol, send_command_handle_response),
diff -pruN 7.2.9-1/ext/mysqlnd/mysqlnd_wireprotocol.h 7.2.11-3/ext/mysqlnd/mysqlnd_wireprotocol.h
--- 7.2.9-1/ext/mysqlnd/mysqlnd_wireprotocol.h	2018-08-14 14:26:38.000000000 +0000
+++ 7.2.11-3/ext/mysqlnd/mysqlnd_wireprotocol.h	2018-10-09 15:09:46.000000000 +0000
@@ -292,16 +292,6 @@ typedef struct  st_mysqlnd_packet_sha256
 	size_t					public_key_len;
 } MYSQLND_PACKET_SHA256_PK_REQUEST_RESPONSE;
 
-typedef struct st_mysqlnd_packet_cached_sha2_result {
-	MYSQLND_PACKET_HEADER		header;
-	uint8_t		response_code;
-	uint8_t 	result;
-	uint8_t 	request;
-	zend_uchar * password;
-	size_t password_len;
-} MYSQLND_PACKET_CACHED_SHA2_RESULT;
-
-
 
 zend_ulong		php_mysqlnd_net_field_length(const zend_uchar **packet);
 zend_uchar *	php_mysqlnd_net_store_length(zend_uchar *packet, const uint64_t length);
diff -pruN 7.2.9-1/ext/oci8/config.m4 7.2.11-3/ext/oci8/config.m4
--- 7.2.9-1/ext/oci8/config.m4	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/config.m4	2018-10-09 15:09:41.000000000 +0000
@@ -66,8 +66,8 @@ AC_DEFUN([AC_OCI8_ORACLE_VERSION],[
     OCI8_ORACLE_VERSION=8.1
   elif test -f $OCI8_LCS_BASE.1.0; then
     OCI8_ORACLE_VERSION=8.0
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.a; then 
-    if test -f $OCI8_DIR/$OCI8_LIB_DIR/libcore4.a; then 
+  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.a; then
+    if test -f $OCI8_DIR/$OCI8_LIB_DIR/libcore4.a; then
       OCI8_ORACLE_VERSION=8.0
     else
       OCI8_ORACLE_VERSION=8.1
@@ -86,7 +86,7 @@ dnl support DTrace for extensions.  Crea
 dnl independently instead of using a refactored PHP_INIT_DTRACE allows
 dnl OCI8 to be DTraced on versions of PHP where core PHP DTrace support
 dnl isn't available.
-dnl 
+dnl
 AC_DEFUN([OCI8_INIT_DTRACE],[
   ac_srcdir=[]PHP_EXT_SRCDIR([oci8])/
   ac_bdir=[]PHP_EXT_BUILDDIR([oci8])/
@@ -173,7 +173,7 @@ PHP_ARG_WITH(oci8, for Oracle Database O
                           Use --with-oci8=instantclient,/path/to/instant/client/lib
                           to use an Oracle Instant Client installation])
 
-if test "$PHP_OCI8" != "no"; then 
+if test "$PHP_OCI8" != "no"; then
 
   if test -z "$PHP_OCI8"; then
     dnl --with-oci8=$ORACLE_HOME where ORACLE_HOME isn't set (or is mistyped) will match this case
@@ -211,12 +211,12 @@ if test "$PHP_OCI8" != "no"; then
   fi
 
   dnl Check whether --enable-dtrace was set.
-  dnl To use DTrace with a PECL install, extract the OCI8 archive, phpize it, and set 
+  dnl To use DTrace with a PECL install, extract the OCI8 archive, phpize it, and set
   dnl PHP_DTRACE=yes before running configure
   AC_MSG_CHECKING([OCI8 DTrace support])
   oci8_do_dtrace="`echo $PHP_OCI8 | cut -d, -f3`"
   if test "$PHP_DTRACE" = "yes" -o "$oci8_do_dtrace" = "dtrace" ; then
-    AC_MSG_RESULT([yes])    
+    AC_MSG_RESULT([yes])
     if test "$ext_shared" = "no"; then
       AC_MSG_ERROR([For DTrace support OCI8 must be configured as a shared extension])
     else
@@ -242,7 +242,7 @@ if test "$PHP_OCI8" != "no"; then
   AC_MSG_CHECKING([checking if we're on a 64-bit platform])
   if test "$ac_cv_sizeof_long_int" = "4"; then
     AC_MSG_RESULT([no])
-    PHP_OCI8_OH_LIBDIR=lib32 
+    PHP_OCI8_OH_LIBDIR=lib32
     PHP_OCI8_IC_LIBDIR_SUFFIX=""
   else
     AC_MSG_RESULT([yes])
diff -pruN 7.2.9-1/ext/oci8/LICENSE 7.2.11-3/ext/oci8/LICENSE
--- 7.2.9-1/ext/oci8/LICENSE	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/LICENSE	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
--------------------------------------------------------------------- 
+--------------------------------------------------------------------
                   The PHP License, version 3.01
 Copyright (c) 1999 - 2018 The PHP Group. All rights reserved.
--------------------------------------------------------------------- 
+--------------------------------------------------------------------
 
 Redistribution and use in source and binary forms, with or without
 modification, is permitted provided that the following conditions
@@ -9,22 +9,22 @@ are met:
 
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
- 
+
   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in
      the documentation and/or other materials provided with the
      distribution.
- 
+
   3. The name "PHP" must not be used to endorse or promote products
      derived from this software without prior written permission. For
      written permission, please contact group@php.net.
-  
+
   4. Products derived from this software may not be called "PHP", nor
      may "PHP" appear in their name, without prior written permission
      from group@php.net.  You may indicate that your software works in
      conjunction with PHP by saying "Foo for PHP" instead of calling
      it "PHP Foo" or "phpfoo"
- 
+
   5. The PHP Group may publish revised and/or new versions of the
      license from time to time. Each version will be given a
      distinguishing version number.
@@ -41,27 +41,27 @@ are met:
      "This product includes PHP software, freely available from
      <http://www.php.net/software/>".
 
-THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND 
+THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
 ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE PHP
-DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
+DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 OF THE POSSIBILITY OF SUCH DAMAGE.
 
--------------------------------------------------------------------- 
+--------------------------------------------------------------------
 
 This software consists of voluntary contributions made by many
 individuals on behalf of the PHP Group.
 
 The PHP Group can be contacted via Email at group@php.net.
 
-For more information on the PHP Group and the PHP project, 
+For more information on the PHP Group and the PHP project,
 please see <http://www.php.net>.
 
 PHP includes the Zend Engine, freely available at
diff -pruN 7.2.9-1/ext/oci8/oci8.c 7.2.11-3/ext/oci8/oci8.c
--- 7.2.9-1/ext/oci8/oci8.c	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/oci8.c	2018-10-09 15:09:41.000000000 +0000
@@ -1207,7 +1207,6 @@ PHP_MINFO_FUNCTION(oci)
 	php_info_print_table_row(2, "OCI8 DTrace Support", "disabled");
 #endif
 	php_info_print_table_row(2, "OCI8 Version", PHP_OCI8_VERSION);
-	php_info_print_table_row(2, "Revision", "$Id: 4543974aab26d8a3d85257ab18d0dca4503ff9e7 $");
 
 #if ((OCI_MAJOR_VERSION > 10) || ((OCI_MAJOR_VERSION == 10) && (OCI_MINOR_VERSION >= 2)))
 	php_oci_client_get_version(ver, sizeof(ver));
@@ -1455,8 +1454,13 @@ void php_oci_column_hash_dtor(zval *data
 	if (column->descid) {
 		if (GC_REFCOUNT(column->descid) == 1)
 			zend_list_close(column->descid);
-		else
+		else {
+#if PHP_VERSION_ID < 70300
 			GC_REFCOUNT(column->descid)--;
+#else
+			GC_DELREF(column->descid);
+#endif
+		}
 	}
 
 	if (column->data) {
@@ -1537,7 +1541,7 @@ sb4 php_oci_error(OCIError *err_p, sword
 		case OCI_ERROR:
 			errcode = php_oci_fetch_errmsg(err_p, errbuf, sizeof(errbuf));
 			if (errcode) {
-				php_error_docref(NULL, E_WARNING, "%s", errbuf, sizeof(errbuf));
+				php_error_docref(NULL, E_WARNING, "%s", errbuf);
 			} else {
 				php_error_docref(NULL, E_WARNING, "failed to fetch error message");
 			}
@@ -1784,12 +1788,12 @@ php_oci_connection *php_oci_do_connect_e
 	timestamp = time(NULL);
 
 	smart_str_append_unsigned_ex(&hashed_details, session_mode, 0);
-	smart_str_0(&hashed_details);
-
 	if (persistent) {
 		smart_str_appendl_ex(&hashed_details, "pc", sizeof("pc") - 1, 0);
 	}
 
+	smart_str_0(&hashed_details);
+
 	/* make it lowercase */
 	php_strtolower(ZSTR_VAL(hashed_details.s), ZSTR_LEN(hashed_details.s));
 
@@ -1872,13 +1876,17 @@ php_oci_connection *php_oci_do_connect_e
 								if ((tmp_val != NULL) && (Z_TYPE_P(tmp_val) == IS_RESOURCE)) {
 									tmp = Z_RES_VAL_P(tmp_val);
 								}
-							
+
 								if ((tmp_val != NULL) && (tmp != NULL) &&
 									(ZSTR_LEN(tmp->hash_key) == ZSTR_LEN(hashed_details.s)) &&
 									(memcmp(ZSTR_VAL(tmp->hash_key), ZSTR_VAL(hashed_details.s),
 									 ZSTR_LEN(tmp->hash_key)) == 0)) {
 									connection = tmp;
+#if PHP_VERSION_ID < 70300
 									++GC_REFCOUNT(connection->id);
+#else
+									GC_ADDREF(connection->id);
+#endif
 								}
 							} else {
 								PHP_OCI_REGISTER_RESOURCE(connection, le_pconnection);
@@ -1888,7 +1896,11 @@ php_oci_connection *php_oci_do_connect_e
 								 * decremented in the persistent helper
 								 */
 								if (OCI_G(old_oci_close_semantics)) {
+#if PHP_VERSION_ID < 70300
 									++GC_REFCOUNT(connection->id);
+#else
+									GC_ADDREF(connection->id);
+#endif
 								}
 							}
 							smart_str_free(&hashed_details);
@@ -1899,7 +1911,11 @@ php_oci_connection *php_oci_do_connect_e
 				} else {
 					/* we do not ping non-persistent connections */
 					smart_str_free(&hashed_details);
+#if PHP_VERSION_ID < 70300
 					++GC_REFCOUNT(connection->id);
+#else
+					GC_ADDREF(connection->id);
+#endif
 					return connection;
 				}
 			} /* is_open is true? */
@@ -2041,8 +2057,10 @@ php_oci_connection *php_oci_do_connect_e
 
 	/* add to the appropriate hash */
 	if (connection->is_persistent) {
+#if PHP_VERSION_ID < 70300
 		new_le.ptr = connection;
 		new_le.type = le_pconnection;
+#endif
 		connection->used_this_request = 1;
 		PHP_OCI_REGISTER_RESOURCE(connection, le_pconnection);
 
@@ -2051,9 +2069,17 @@ php_oci_connection *php_oci_do_connect_e
 		 * refcount is decremented in the persistent helper
 		 */
 		if (OCI_G(old_oci_close_semantics)) {
+#if PHP_VERSION_ID < 70300
 			++GC_REFCOUNT(connection->id);
+#else
+			GC_ADDREF(connection->id);
+#endif
 		}
+#if PHP_VERSION_ID < 70300
 		zend_hash_update_mem(&EG(persistent_list), connection->hash_key, (void *)&new_le, sizeof(zend_resource));
+#else
+		zend_register_persistent_resource_ex(connection->hash_key, connection, le_pconnection);
+#endif
 		OCI_G(num_persistent)++;
 		OCI_G(num_links)++;
 	} else if (!exclusive) {
@@ -2448,7 +2474,11 @@ int php_oci_column_to_zval(php_oci_out_c
 
 	if (column->is_cursor) { /* REFCURSOR -> simply return the statement id */
 		ZVAL_RES(value, column->stmtid);
+#if PHP_VERSION_ID < 70300
 		++GC_REFCOUNT(column->stmtid);
+#else
+		GC_ADDREF(column->stmtid);
+#endif
 	} else if (column->is_descr) {
 
 		if (column->data_type != SQLT_RDD) {
@@ -2492,7 +2522,11 @@ int php_oci_column_to_zval(php_oci_out_c
 			/* return the locator */
 			object_init_ex(value, oci_lob_class_entry_ptr);
 			add_property_resource(value, "descriptor", column->descid);
+#if PHP_VERSION_ID < 70300
 			++GC_REFCOUNT(column->descid);
+#else
+			GC_ADDREF(column->descid);
+#endif
 		}
 	} else {
 		switch (column->retcode) {
@@ -2874,7 +2908,9 @@ static php_oci_spool *php_oci_get_spool(
 {
 	smart_str spool_hashed_details = {0};
 	php_oci_spool *session_pool = NULL;
+#if PHP_VERSION_ID < 70300
 	zend_resource spool_le = {{0}};
+#endif
 	zend_resource *spool_out_le = NULL;
 	zend_bool iserror = 0;
 	zval *spool_out_zv = NULL;
@@ -2921,10 +2957,14 @@ static php_oci_spool *php_oci_get_spool(
 			iserror = 1;
 			goto exit_get_spool;
 		}
+#if PHP_VERSION_ID < 70300
 		spool_le.ptr  = session_pool;
 		spool_le.type = le_psessionpool;
 		PHP_OCI_REGISTER_RESOURCE(session_pool, le_psessionpool);
 		zend_hash_update_mem(&EG(persistent_list), session_pool->spool_hash_key, (void *)&spool_le, sizeof(zend_resource));
+#else
+		zend_register_persistent_resource_ex(session_pool->spool_hash_key, session_pool, le_psessionpool);
+#endif
 	} else if (spool_out_le->type == le_psessionpool &&
 		ZSTR_LEN(((php_oci_spool *)(spool_out_le->ptr))->spool_hash_key) == ZSTR_LEN(spool_hashed_details.s) &&
 		memcmp(ZSTR_VAL(((php_oci_spool *)(spool_out_le->ptr))->spool_hash_key), ZSTR_VAL(spool_hashed_details.s), ZSTR_LEN(spool_hashed_details.s)) == 0) {
diff -pruN 7.2.9-1/ext/oci8/oci8_collection.c 7.2.11-3/ext/oci8/oci8_collection.c
--- 7.2.9-1/ext/oci8/oci8_collection.c	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/oci8_collection.c	2018-10-09 15:09:41.000000000 +0000
@@ -41,18 +41,22 @@
 /* {{{ php_oci_collection_create()
  Create and return connection handle */
 php_oci_collection *php_oci_collection_create(php_oci_connection *connection, char *tdo, int tdo_len, char *schema, int schema_len)
-{	
+{
 	dvoid *dschp1 = NULL;
 	dvoid *parmp1;
 	dvoid *parmp2;
 	php_oci_collection *collection;
 	sword errstatus;
-	
+
 	collection = emalloc(sizeof(php_oci_collection));
 
 	collection->connection = connection;
 	collection->collection = NULL;
+#if PHP_VERSION_ID < 70300
 	++GC_REFCOUNT(collection->connection->id);
+#else
+	GC_ADDREF(collection->connection->id);
+#endif
 
 	/* get type handle by name */
 	PHP_OCI_CALL_RETURN(errstatus, OCITypeByName,
@@ -195,7 +199,7 @@ php_oci_collection *php_oci_collection_c
 		default:
 			php_error_docref(NULL, E_WARNING, "unknown collection type %d", collection->coll_typecode);
 			break;
-	}	
+	}
 
 	/* Create object to hold return table */
 	PHP_OCI_CALL_RETURN(errstatus, OCIObjectNew,
@@ -221,7 +225,7 @@ php_oci_collection *php_oci_collection_c
 	PHP_OCI_REGISTER_RESOURCE(collection, le_collection);
 	connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	return collection;
-	
+
 CLEANUP:
 
 	if (dschp1) {
@@ -230,7 +234,7 @@ CLEANUP:
 	}
 	connection->errcode = php_oci_error(connection->err, errstatus);
 	PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
-	php_oci_collection_close(collection);	
+	php_oci_collection_close(collection);
 	return NULL;
 }
 /* }}} */
@@ -241,7 +245,7 @@ int php_oci_collection_size(php_oci_coll
 {
 	php_oci_connection *connection = collection->connection;
 	sword errstatus;
-	
+
 	PHP_OCI_CALL_RETURN(errstatus, OCICollSize, (connection->env, connection->err, collection->collection, (sb4 *)size));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -259,7 +263,7 @@ int php_oci_collection_size(php_oci_coll
 int php_oci_collection_max(php_oci_collection *collection, zend_long *max)
 {
 	php_oci_connection *connection = collection->connection;
-	
+
 	PHP_OCI_CALL_RETURN(*max, OCICollMax, (connection->env, collection->collection));
 
 	/* error handling is not necessary here? */
@@ -296,7 +300,7 @@ int php_oci_collection_append_null(php_o
 
 	/* append NULL element */
 	PHP_OCI_CALL_RETURN(errstatus, OCICollAppend, (connection->env, connection->err, (dvoid *)0, &null_index, collection->collection));
-	
+
 	if (errstatus != OCI_SUCCESS) {
 		errstatus = php_oci_error(connection->err, errstatus);
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
@@ -341,7 +345,7 @@ int php_oci_collection_append_date(php_o
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 		return 1;
 	}
-			
+
 	connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	return 0;
 }
@@ -358,7 +362,7 @@ int php_oci_collection_append_number(php
 	sword errstatus;
 
 	element_double = zend_strtod(number, NULL);
-			
+
 	PHP_OCI_CALL_RETURN(errstatus, OCINumberFromReal, (connection->err, &element_double, sizeof(double), &oci_number));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -396,7 +400,7 @@ int php_oci_collection_append_string(php
 	OCIString *ocistr = (OCIString *)0;
 	php_oci_connection *connection = collection->connection;
 	sword errstatus;
-			
+
 	PHP_OCI_CALL_RETURN(errstatus, OCIStringAssignText, (connection->env, connection->err, (CONST oratext *)element, element_len, &ocistr));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -433,12 +437,12 @@ int php_oci_collection_append(php_oci_co
 	if (element_len == 0) {
 		return php_oci_collection_append_null(collection);
 	}
-	
+
 	switch(collection->element_typecode) {
 		case OCI_TYPECODE_DATE:
 			return php_oci_collection_append_date(collection, element, element_len);
 			break;
-			
+
 		case OCI_TYPECODE_VARCHAR2 :
 			return php_oci_collection_append_string(collection, element, element_len);
 			break;
@@ -478,7 +482,7 @@ int php_oci_collection_element_get(php_o
 	oratext buff[1024];
 	ub4 buff_len = 1024;
 	sword errstatus;
-	
+
 	ZVAL_NULL(result_element);
 
 	connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
@@ -500,7 +504,7 @@ int php_oci_collection_element_get(php_o
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 		return 1;
 	}
-	
+
 	if (exists == 0) {
 		/* element doesn't exist */
 		return 1;
@@ -514,7 +518,7 @@ int php_oci_collection_element_get(php_o
 	switch (collection->element_typecode) {
 		case OCI_TYPECODE_DATE:
 			PHP_OCI_CALL_RETURN(errstatus, OCIDateToText, (connection->err, element, 0, 0, 0, 0, &buff_len, buff));
-	
+
 			if (errstatus != OCI_SUCCESS) {
 				connection->errcode = php_oci_error(connection->err, errstatus);
 				PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
@@ -523,7 +527,7 @@ int php_oci_collection_element_get(php_o
 
 			ZVAL_STRINGL(result_element, (char *)buff, buff_len);
 			Z_STRVAL_P(result_element)[buff_len] = '\0';
-			
+
 			return 0;
 			break;
 
@@ -531,9 +535,9 @@ int php_oci_collection_element_get(php_o
 		{
 			OCIString *oci_string = *(OCIString **)element;
 			text *str;
-			
+
 			PHP_OCI_CALL_RETURN(str, OCIStringPtr, (connection->env, oci_string));
-			
+
 			if (str) {
 				ZVAL_STRING(result_element, (char *)str);
 			}
@@ -554,7 +558,7 @@ int php_oci_collection_element_get(php_o
 		case OCI_TYPECODE_SMALLINT:							/* SMALLINT */
 		{
 			double double_number;
-			
+
 			PHP_OCI_CALL_RETURN(errstatus, OCINumberToReal, (connection->err, (CONST OCINumber *) element, (uword) sizeof(double), (dvoid *) &double_number));
 
 			if (errstatus != OCI_SUCCESS) {
@@ -562,7 +566,7 @@ int php_oci_collection_element_get(php_o
 				PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 				return 1;
 			}
-			
+
 			ZVAL_DOUBLE(result_element, double_number);
 
 			return 0;
@@ -588,7 +592,7 @@ int php_oci_collection_element_set_null(
 
 	/* set NULL element */
 	PHP_OCI_CALL_RETURN(errstatus, OCICollAssignElem, (connection->env, connection->err, (ub4) index, (dvoid *)"", &null_index, collection->collection));
-	
+
 	if (errstatus != OCI_SUCCESS) {
 		connection->errcode = php_oci_error(connection->err, errstatus);
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
@@ -634,7 +638,7 @@ int php_oci_collection_element_set_date(
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 		return 1;
 	}
-			
+
 	connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	return 0;
 }
@@ -651,7 +655,7 @@ int php_oci_collection_element_set_numbe
 	sword errstatus;
 
 	element_double = zend_strtod(number, NULL);
-			
+
 	PHP_OCI_CALL_RETURN(errstatus, OCINumberFromReal, (connection->err, &element_double, sizeof(double), &oci_number));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -690,7 +694,7 @@ int php_oci_collection_element_set_strin
 	OCIString *ocistr = (OCIString *)0;
 	php_oci_connection *connection = collection->connection;
 	sword errstatus;
-			
+
 	PHP_OCI_CALL_RETURN(errstatus, OCIStringAssignText, (connection->env, connection->err, (CONST oratext *)element, element_len, &ocistr));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -728,12 +732,12 @@ int php_oci_collection_element_set(php_o
 	if (value_len == 0) {
 		return php_oci_collection_element_set_null(collection, index);
 	}
-	
+
 	switch(collection->element_typecode) {
 		case OCI_TYPECODE_DATE:
 			return php_oci_collection_element_set_date(collection, index, value, value_len);
 			break;
-			
+
 		case OCI_TYPECODE_VARCHAR2 :
 			return php_oci_collection_element_set_string(collection, index, value, value_len);
 			break;
@@ -768,7 +772,7 @@ int php_oci_collection_assign(php_oci_co
 {
 	php_oci_connection *connection = collection_dest->connection;
 	sword errstatus;
-	
+
 	PHP_OCI_CALL_RETURN(errstatus, OCICollAssign, (connection->env, connection->err, collection_from->collection, collection_dest->collection));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -798,7 +802,7 @@ void php_oci_collection_close(php_oci_co
 			connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 		}
 	}
-	
+
 	zend_list_delete(collection->connection->id);
 	efree(collection);
 	return;
diff -pruN 7.2.9-1/ext/oci8/oci8_failover.c 7.2.11-3/ext/oci8/oci8_failover.c
--- 7.2.9-1/ext/oci8/oci8_failover.c	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/oci8_failover.c	2018-10-09 15:09:41.000000000 +0000
@@ -40,7 +40,7 @@
 #include "php_oci8.h"
 #include "php_oci8_int.h"
 
-/* {{{ callback_fn() 
+/* {{{ callback_fn()
    OCI TAF callback function, calling userspace function */
 sb4 callback_fn(void *svchp, void *envhp, void *fo_ctx, ub4 fo_type, ub4 fo_event)
 {
@@ -71,7 +71,7 @@ sb4 callback_fn(void *svchp, void *envhp
 		returnValue = (sb4) Z_LVAL(retval);
 	}
 
-	/* Setting params[0] to null so ressource isn't destroyed on zval_dtor */
+	/* Setting params[0] to null so resource isn't destroyed on zval_dtor */
 	ZVAL_NULL(&params[0]);
 
 	/* Cleanup */
@@ -106,7 +106,7 @@ int php_oci_register_taf_callback(php_oc
 	if (!callback) {
 		/* Unregister callback */
 		if (Z_ISUNDEF(connection->taf_callback) || Z_ISNULL(connection->taf_callback)) {
-			return 0; // Nothing to unregister 
+			return 0; // Nothing to unregister
 		}
 
 		registered = 1;
diff -pruN 7.2.9-1/ext/oci8/oci8_interface.c 7.2.11-3/ext/oci8/oci8_interface.c
--- 7.2.9-1/ext/oci8/oci8_interface.c	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/oci8_interface.c	2018-10-09 15:09:41.000000000 +0000
@@ -56,20 +56,32 @@ PHP_FUNCTION(oci_register_taf_callback)
 	}
 
 	if (callback) {
-#if PHP_MAJOR_VERSION > 7 || (PHP_MAJOR_VERSION == 7 && PHP_MINOR_VERSION >= 2)    
+#if PHP_MAJOR_VERSION > 7 || (PHP_MAJOR_VERSION == 7 && PHP_MINOR_VERSION >= 2)
 		if (!zend_is_callable(callback, 0, 0)) {
 			callback_name = zend_get_callable_name(callback);
 			php_error_docref(NULL, E_WARNING, "function '%s' is not callable", ZSTR_VAL(callback_name));
+#if PHP_VERSION_ID < 70300
 			zend_string_release(callback_name);
+#else
+			zend_string_release_ex(callback_name, 0);
+#endif
 			RETURN_FALSE;
 		}
 #else
 		if (!zend_is_callable(callback, 0, &callback_name)) {
 			php_error_docref(NULL, E_WARNING, "function '%s' is not callable", ZSTR_VAL(callback_name));
+#if PHP_VERSION_ID < 70300
 			zend_string_release(callback_name);
+#else
+			zend_string_release_ex(callback_name, 0);
+#endif
 			RETURN_FALSE;
 		}
+#if PHP_VERSION_ID < 70300
 		zend_string_release(callback_name);
+#else
+		zend_string_release_ex(callback_name, 0);
+#endif
 #endif
 	}
 
@@ -141,10 +153,18 @@ PHP_FUNCTION(oci_define_by_name)
 	/* if (zend_hash_add(statement->defines, name, name_len, define, sizeof(php_oci_define), (void **)&tmp_define) == SUCCESS) { */
 	zvtmp = zend_string_init(name, name_len, 0);
 	if ((define = zend_hash_add_new_ptr(statement->defines, zvtmp, define)) != NULL) {
+#if PHP_VERSION_ID < 70300
 		zend_string_release(zvtmp);
+#else
+		zend_string_release_ex(zvtmp, 0);
+#endif
 	} else {
 		efree(define);
+#if PHP_VERSION_ID < 70300
 		zend_string_release(zvtmp);
+#else
+		zend_string_release_ex(zvtmp, 0);
+#endif
 		RETURN_FALSE;
 	}
 
@@ -172,7 +192,7 @@ PHP_FUNCTION(oci_bind_by_name)
 	zval *z_statement;
 	zval *bind_var = NULL;
 	php_oci_statement *statement;
-	
+
 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "rsz|ll", &z_statement, &name, &name_len, &bind_var, &maxlen, &type) == FAILURE) {
 		return;
 	}
@@ -180,7 +200,7 @@ PHP_FUNCTION(oci_bind_by_name)
 	if (type) {
 		bind_type = (ub2) type;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_STATEMENT(z_statement, statement);
 
 	if (php_oci_bind_by_name(statement, name, name_len, bind_var, maxlen, bind_type)) {
@@ -202,7 +222,7 @@ PHP_FUNCTION(oci_bind_array_by_name)
 	zval *z_statement;
 	zval *bind_var = NULL;
 	php_oci_statement *statement;
-	
+
 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "rszl|ll", &z_statement, &name, &name_len, &bind_var, &max_array_len, &max_item_len, &type) == FAILURE) {
 		return;
 	}
@@ -212,12 +232,12 @@ PHP_FUNCTION(oci_bind_array_by_name)
 	if (ZEND_NUM_ARGS() == 5 && max_item_len <= 0) {
 		max_item_len = -1;
 	}
-	
+
 	if (max_array_len <= 0) {
 		php_error_docref(NULL, E_WARNING, "Maximum array length must be greater than zero");
 		RETURN_FALSE;
 	}
-	
+
 	if (php_oci_bind_array_by_name(statement, name, (sb4) name_len, bind_var, max_array_len, max_item_len, type)) {
 		RETURN_FALSE;
 	}
@@ -237,7 +257,7 @@ PHP_FUNCTION(oci_free_descriptor)
 			return;
 		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
@@ -271,7 +291,7 @@ PHP_FUNCTION(oci_lob_save)
 			return;
 		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
@@ -283,7 +303,7 @@ PHP_FUNCTION(oci_lob_save)
 		php_error_docref(NULL, E_WARNING, "Offset parameter must be greater than or equal to 0");
 		RETURN_FALSE;
 	}
-	
+
 	if (php_oci_lob_write(descriptor, (ub4) offset, data, (ub4) data_len, &bytes_written)) {
 		RETURN_FALSE;
 	}
@@ -308,7 +328,7 @@ PHP_FUNCTION(oci_lob_import)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Op", &z_descriptor, oci_lob_class_entry_ptr, &filename, &filename_len) == FAILURE) {
 			return;
-		}	
+		}
 	}
 
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
@@ -337,14 +357,14 @@ PHP_FUNCTION(oci_lob_load)
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_descriptor, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
 
 	if (php_oci_lob_read(descriptor, -1, 0, &buffer, &buffer_len)) {
@@ -380,24 +400,24 @@ PHP_FUNCTION(oci_lob_read)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ol", &z_descriptor, oci_lob_class_entry_ptr, &length) == FAILURE) {
 			return;
-		}	
+		}
 	}
 
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
 
 	if (length <= 0) {
 		php_error_docref(NULL, E_WARNING, "Length parameter must be greater than 0");
 		RETURN_FALSE;
 	}
-	
+
 	if (php_oci_lob_read(descriptor, length, descriptor->lob_current_position, &buffer, &buffer_len)) {
 		RETURN_FALSE;
-	}	
+	}
 	if (buffer_len > 0) {
 		zend_string *ret = zend_string_init(buffer, buffer_len, 0);
 		efree(buffer);
@@ -416,20 +436,20 @@ PHP_FUNCTION(oci_lob_eof)
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
 	ub4 lob_length;
-	
+
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_descriptor, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	if (!php_oci_lob_get_length(descriptor, &lob_length)) {
 		if (lob_length == descriptor->lob_current_position) {
 			RETURN_TRUE;
@@ -445,21 +465,21 @@ PHP_FUNCTION(oci_lob_tell)
 {
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
-	
+
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_descriptor, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
-	RETURN_LONG(descriptor->lob_current_position);	
+
+	RETURN_LONG(descriptor->lob_current_position);
 }
 /* }}} */
 
@@ -469,20 +489,20 @@ PHP_FUNCTION(oci_lob_rewind)
 {
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
-	
+
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_descriptor, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	descriptor->lob_current_position = 0;
 
 	RETURN_TRUE;
@@ -497,7 +517,7 @@ PHP_FUNCTION(oci_lob_seek)
 	php_oci_descriptor *descriptor;
 	zend_long offset, whence = PHP_OCI_SEEK_SET;
 	ub4 lob_length;
-	
+
 	if (getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "l|l", &offset, &whence) == FAILURE) {
 			return;
@@ -506,14 +526,14 @@ PHP_FUNCTION(oci_lob_seek)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ol|l", &z_descriptor, oci_lob_class_entry_ptr, &offset, &whence) == FAILURE) {
 			return;
-		}	
+		}
 	}
 
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
 
 	if (php_oci_lob_get_length(descriptor, &lob_length)) {
@@ -536,7 +556,7 @@ PHP_FUNCTION(oci_lob_seek)
 		default:
 				descriptor->lob_current_position = (offset > 0) ? (ub4) offset : 0;
 			break;
-	}	
+	}
 	if (descriptor->lob_current_position > UB4MAXVAL) {
 		php_error_docref(NULL, E_WARNING, "Invalid offset or LOB position");
 		RETURN_FALSE;
@@ -552,20 +572,20 @@ PHP_FUNCTION(oci_lob_size)
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
 	ub4 lob_length;
-	
+
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_descriptor, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	if (php_oci_lob_get_length(descriptor, &lob_length)) {
 		RETURN_FALSE;
 	}
@@ -583,12 +603,12 @@ PHP_FUNCTION(oci_lob_write)
 	zend_long write_len = 0;
 	ub4 bytes_written;
 	char *data;
-	
+
 	if (getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|l", &data, &data_len, &write_len) == FAILURE) {
 			return;
 		}
-		
+
 		if (ZEND_NUM_ARGS() == 2) {
 			data_len = MIN((zend_long) data_len, write_len);
 		}
@@ -602,18 +622,18 @@ PHP_FUNCTION(oci_lob_write)
 			data_len = MIN((zend_long) data_len, write_len);
 		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	if (data_len <= 0) {
 		RETURN_LONG(0);
 	}
-	
+
 	if (php_oci_lob_write(descriptor, descriptor->lob_current_position, data, (ub4) data_len, &bytes_written)) {
 		RETURN_FALSE;
 	}
@@ -627,7 +647,7 @@ PHP_FUNCTION(oci_lob_append)
 {
 	zval *tmp_dest, *tmp_from, *z_descriptor_dest = getThis(), *z_descriptor_from;
 	php_oci_descriptor *descriptor_dest, *descriptor_from;
-	
+
 	if (getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_descriptor_from, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
@@ -636,22 +656,22 @@ PHP_FUNCTION(oci_lob_append)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "OO", &z_descriptor_dest, oci_lob_class_entry_ptr, &z_descriptor_from, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp_dest = zend_hash_str_find(Z_OBJPROP_P(z_descriptor_dest), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property. The first argument should be valid descriptor object");
 		RETURN_FALSE;
 	}
-	
+
 	if ((tmp_from = zend_hash_str_find(Z_OBJPROP_P(z_descriptor_from), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property. The second argument should be valid descriptor object");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp_dest, descriptor_dest);
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp_from, descriptor_from);
-	
+
 	if (php_oci_lob_append(descriptor_dest, descriptor_from)) {
 		RETURN_FALSE;
 	}
@@ -668,7 +688,7 @@ PHP_FUNCTION(oci_lob_truncate)
 	php_oci_descriptor *descriptor;
 	zend_long trim_length = 0;
 	ub4 ub_trim_length;
-	
+
 	if (getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &trim_length) == FAILURE) {
 			return;
@@ -677,9 +697,9 @@ PHP_FUNCTION(oci_lob_truncate)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|l", &z_descriptor, oci_lob_class_entry_ptr, &trim_length) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
@@ -692,7 +712,7 @@ PHP_FUNCTION(oci_lob_truncate)
 
 	ub_trim_length = (ub4) trim_length;
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	if (php_oci_lob_truncate(descriptor, ub_trim_length)) {
 		RETURN_FALSE;
 	}
@@ -708,7 +728,7 @@ PHP_FUNCTION(oci_lob_erase)
 	php_oci_descriptor *descriptor;
 	ub4 bytes_erased;
 	zend_long offset = -1, length = -1;
-	
+
 	if (getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "|ll", &offset, &length) == FAILURE) {
 			return;
@@ -733,7 +753,7 @@ PHP_FUNCTION(oci_lob_erase)
 			php_error_docref(NULL, E_WARNING, "Offset must be greater than or equal to 0");
 			RETURN_FALSE;
 		}
-		
+
 		if (ZEND_NUM_ARGS() > 2 && length < 0) {
 			php_error_docref(NULL, E_WARNING, "Length must be greater than or equal to 0");
 			RETURN_FALSE;
@@ -761,7 +781,7 @@ PHP_FUNCTION(oci_lob_flush)
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
 	zend_long flush_flag = 0;
-	
+
 	if (getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &flush_flag) == FAILURE) {
 			return;
@@ -772,14 +792,14 @@ PHP_FUNCTION(oci_lob_flush)
 			return;
 		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	if (descriptor->buffering == PHP_OCI_LOB_BUFFER_DISABLED) {
 		/* buffering wasn't enabled, there is nothing to flush */
 		RETURN_FALSE;
@@ -799,7 +819,7 @@ PHP_FUNCTION(ocisetbufferinglob)
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
 	zend_bool flag;
-	
+
 	if (getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "b", &flag) == FAILURE) {
 			return;
@@ -808,16 +828,16 @@ PHP_FUNCTION(ocisetbufferinglob)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ob", &z_descriptor, oci_lob_class_entry_ptr, &flag) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	if (php_oci_lob_set_buffering(descriptor, flag)) {
 		RETURN_FALSE;
 	}
@@ -831,20 +851,20 @@ PHP_FUNCTION(ocigetbufferinglob)
 {
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
-	
+
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_descriptor, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
 
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	if (descriptor->buffering != PHP_OCI_LOB_BUFFER_DISABLED) {
 		RETURN_TRUE;
 	}
@@ -859,29 +879,29 @@ PHP_FUNCTION(oci_lob_copy)
 	zval *tmp_dest, *tmp_from, *z_descriptor_dest, *z_descriptor_from;
 	php_oci_descriptor *descriptor_dest, *descriptor_from;
 	zend_long length = 0;
-	
+
 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "OO|l", &z_descriptor_dest, oci_lob_class_entry_ptr, &z_descriptor_from, oci_lob_class_entry_ptr, &length) == FAILURE) {
 		return;
 	}
-	
+
 	if ((tmp_dest = zend_hash_str_find(Z_OBJPROP_P(z_descriptor_dest), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property. The first argument should be valid descriptor object");
 		RETURN_FALSE;
 	}
-	
+
 	if ((tmp_from = zend_hash_str_find(Z_OBJPROP_P(z_descriptor_from), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property. The second argument should be valid descriptor object");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp_dest, descriptor_dest);
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp_from, descriptor_from);
-	
+
 	if (ZEND_NUM_ARGS() == 3 && length < 0) {
 		php_error_docref(NULL, E_WARNING, "Length parameter must be greater than 0");
 		RETURN_FALSE;
 	}
-	
+
 	if (ZEND_NUM_ARGS() == 2) {
 		/* indicate that we want to copy from the current position to the end of the LOB */
 		length = -1;
@@ -901,28 +921,28 @@ PHP_FUNCTION(oci_lob_is_equal)
 	zval *tmp_first, *tmp_second, *z_descriptor_first, *z_descriptor_second;
 	php_oci_descriptor *descriptor_first, *descriptor_second;
 	boolean is_equal;
-		
+
 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "OO", &z_descriptor_first, oci_lob_class_entry_ptr, &z_descriptor_second, oci_lob_class_entry_ptr) == FAILURE) {
 		return;
 	}
-	
+
 	if ((tmp_first = zend_hash_str_find(Z_OBJPROP_P(z_descriptor_first), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property. The first argument should be valid descriptor object");
 		RETURN_FALSE;
 	}
-	
+
 	if ((tmp_second = zend_hash_str_find(Z_OBJPROP_P(z_descriptor_second), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property. The second argument should be valid descriptor object");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp_first, descriptor_first);
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp_second, descriptor_second);
 
 	if (php_oci_lob_is_equal(descriptor_first, descriptor_second, &is_equal)) {
 		RETURN_FALSE;
 	}
-	
+
 	if (is_equal == TRUE) {
 		RETURN_TRUE;
 	}
@@ -933,7 +953,7 @@ PHP_FUNCTION(oci_lob_is_equal)
 /* {{{ proto bool oci_lob_export([string filename [, int start [, int length]]])
    Writes a large object into a file */
 PHP_FUNCTION(oci_lob_export)
-{	
+{
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
 	char *filename;
@@ -947,7 +967,7 @@ PHP_FUNCTION(oci_lob_export)
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "p|ll", &filename, &filename_len, &start, &length) == FAILURE) {
 			return;
 		}
-	
+
 		if (ZEND_NUM_ARGS() > 1 && start < 0) {
 			php_error_docref(NULL, E_WARNING, "Start parameter must be greater than or equal to 0");
 			RETURN_FALSE;
@@ -961,7 +981,7 @@ PHP_FUNCTION(oci_lob_export)
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Op|ll", &z_descriptor, oci_lob_class_entry_ptr, &filename, &filename_len, &start, &length) == FAILURE) {
 			return;
 		}
-			
+
 		if (ZEND_NUM_ARGS() > 2 && start < 0) {
 			php_error_docref(NULL, E_WARNING, "Start parameter must be greater than or equal to 0");
 			RETURN_FALSE;
@@ -976,13 +996,13 @@ PHP_FUNCTION(oci_lob_export)
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
-	
+
 	if (php_oci_lob_get_length(descriptor, &lob_length)) {
 		RETURN_FALSE;
-	}		
-	
+	}
+
 	if (start == -1) {
 		start = 0;
 	}
@@ -1026,7 +1046,7 @@ PHP_FUNCTION(oci_lob_export)
 		if (buffer) {
 			efree(buffer);
 		}
-		
+
 		length -= tmp_bytes_read;
 		descriptor->lob_current_position += tmp_bytes_read;
 		start += tmp_bytes_read;
@@ -1059,14 +1079,14 @@ PHP_FUNCTION(oci_lob_write_temporary)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os|l", &z_descriptor, oci_lob_class_entry_ptr, &data, &data_len, &type) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
 
 	if (php_oci_lob_write_tmp(descriptor, type, data, (int) data_len)) {
@@ -1082,18 +1102,18 @@ PHP_FUNCTION(oci_lob_close)
 {
 	zval *tmp, *z_descriptor = getThis();
 	php_oci_descriptor *descriptor;
-	
+
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_descriptor, oci_lob_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_descriptor), "descriptor", sizeof("descriptor")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_DESCRIPTOR(tmp, descriptor);
 
 	if (php_oci_lob_close(descriptor)) {
@@ -1119,8 +1139,8 @@ PHP_FUNCTION(oci_new_descriptor)
 	PHP_OCI_ZVAL_TO_CONNECTION(z_connection, connection);
 
 	/* php_oci_lob_create() checks type */
-	descriptor = php_oci_lob_create(connection, type);	
-	
+	descriptor = php_oci_lob_create(connection, type);
+
 	if (!descriptor) {
 		RETURN_NULL();
 	}
@@ -1170,7 +1190,7 @@ PHP_FUNCTION(oci_commit)
 	if (connection->descriptors) {
 		php_oci_connection_descriptors_free(connection);
 	}
-	
+
 	if (php_oci_connection_commit(connection)) {
 		RETURN_FALSE;
 	}
@@ -1245,7 +1265,7 @@ PHP_FUNCTION(oci_field_type)
 	if (!column) {
 		RETURN_FALSE;
 	}
-	
+
 	switch (column->data_type) {
 #ifdef SQLT_TIMESTAMP
 		case SQLT_TIMESTAMP:
@@ -1460,7 +1480,7 @@ PHP_FUNCTION(oci_fetch_all)
 
 		while (!php_oci_statement_fetch(statement, nrows)) {
 			zval row;
-			
+
 			array_init_size(&row, statement->ncolumns);
 
 			for (i = 0; i < statement->ncolumns; i++) {
@@ -1472,7 +1492,11 @@ PHP_FUNCTION(oci_fetch_all)
 					zend_string *zvtmp;
 					zvtmp = zend_string_init(columns[ i ]->name, columns[ i ]->name_len, 0);
 					zend_symtable_update(Z_ARRVAL(row), zvtmp, &element);
+#if PHP_VERSION_ID < 70300
 					zend_string_release(zvtmp);
+#else
+					zend_string_release_ex(zvtmp, 0);
+#endif
 				}
 			}
 
@@ -1491,11 +1515,11 @@ PHP_FUNCTION(oci_fetch_all)
 		array_init_size(array, statement->ncolumns);
 		columns = safe_emalloc(statement->ncolumns, sizeof(php_oci_out_column *), 0);
 		outarrs = safe_emalloc(statement->ncolumns, sizeof(zval*), 0);
-		
+
 		if (flags & PHP_OCI_NUM) {
 			for (i = 0; i < statement->ncolumns; i++) {
 				columns[ i ] = php_oci_statement_get_column(statement, i + 1, NULL, 0);
-				
+
 				array_init(&tmp);
 				outarrs[ i ] = zend_hash_next_index_insert(Z_ARRVAL_P(array), &tmp);
 			}
@@ -1503,11 +1527,15 @@ PHP_FUNCTION(oci_fetch_all)
 			for (i = 0; i < statement->ncolumns; i++) {
 				zend_string *zvtmp;
 				columns[ i ] = php_oci_statement_get_column(statement, i + 1, NULL, 0);
-				
+
 				array_init(&tmp);
 				zvtmp = zend_string_init(columns[ i ]->name, columns[ i ]->name_len, 0);
 				outarrs[ i ] = zend_symtable_update(Z_ARRVAL_P(array), zvtmp, &tmp);
+#if PHP_VERSION_ID < 70300
 				zend_string_release(zvtmp);
+#else
+				zend_string_release_ex(zvtmp, 0);
+#endif
 			}
 		}
 
@@ -1524,7 +1552,7 @@ PHP_FUNCTION(oci_fetch_all)
 				break;
 			}
 		}
-		
+
 		efree(columns);
 		efree(outarrs);
 	}
@@ -1605,7 +1633,7 @@ PHP_FUNCTION(oci_close)
 		/* do nothing to keep BC */
 		return;
 	}
-	
+
 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &z_connection) == FAILURE) {
 		return;
 	}
@@ -1622,7 +1650,7 @@ PHP_FUNCTION(oci_close)
 	}
 
 	/* ZVAL_NULL(z_connection); */
-	
+
 	RETURN_TRUE;
 }
 /* }}} */
@@ -2071,7 +2099,7 @@ PHP_FUNCTION(oci_new_cursor)
 	PHP_OCI_ZVAL_TO_CONNECTION(z_connection, connection);
 
 	statement = php_oci_statement_create(connection, NULL, 0);
-	
+
 	if (statement) {
 		RETURN_RES(statement->id);
 	}
@@ -2084,7 +2112,7 @@ PHP_FUNCTION(oci_new_cursor)
 PHP_FUNCTION(oci_result)
 {
 	php_oci_out_column *column;
-	
+
 	column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
 	if(column) {
 		php_oci_column_to_zval(column, return_value, 0);
@@ -2124,7 +2152,7 @@ PHP_FUNCTION(oci_server_version)
 	if (php_oci_server_get_version(connection, version, sizeof(version))) {
 		RETURN_FALSE;
 	}
-	
+
 	ret = zend_string_init(version, strlen(version), 0);
 	RETURN_STR(ret);
 }
@@ -2216,14 +2244,14 @@ PHP_FUNCTION(oci_free_collection)
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_collection, oci_coll_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_collection), "collection", sizeof("collection")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find collection property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_COLLECTION(tmp, collection);
 
 	zend_list_close(collection->id);
@@ -2248,14 +2276,14 @@ PHP_FUNCTION(oci_collection_append)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os", &z_collection, oci_coll_class_entry_ptr, &value, &value_len) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_collection), "collection", sizeof("collection")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find collection property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_COLLECTION(tmp, collection);
 
 	if (php_oci_collection_append(collection, value, (int) value_len)) {
@@ -2282,20 +2310,20 @@ PHP_FUNCTION(oci_collection_element_get)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ol", &z_collection, oci_coll_class_entry_ptr, &element_index) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_collection), "collection", sizeof("collection")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find collection property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_COLLECTION(tmp, collection);
 
 	if (php_oci_collection_element_get(collection, element_index, &value)) {
 		RETURN_FALSE;
 	}
-	
+
 	RETURN_ZVAL(&value, 1, 1);
 }
 /* }}} */
@@ -2315,9 +2343,9 @@ PHP_FUNCTION(oci_collection_assign)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "OO", &z_collection_dest, oci_coll_class_entry_ptr, &z_collection_from, oci_coll_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp_dest = zend_hash_str_find(Z_OBJPROP_P(z_collection_dest), "collection", sizeof("collection")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find collection property. The first argument should be valid collection object");
 		RETURN_FALSE;
@@ -2356,14 +2384,14 @@ PHP_FUNCTION(oci_collection_element_assi
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ols", &z_collection, oci_coll_class_entry_ptr, &element_index, &value, &value_len) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_collection), "collection", sizeof("collection")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find collection property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_COLLECTION(tmp, collection);
 
 	if (php_oci_collection_element_set(collection, element_index, value, (int) value_len)) {
@@ -2380,18 +2408,18 @@ PHP_FUNCTION(oci_collection_size)
 	zval *tmp, *z_collection = getThis();
 	php_oci_collection *collection;
 	sb4 size = 0;
-	
+
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_collection, oci_coll_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_collection), "collection", sizeof("collection")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find collection property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_COLLECTION(tmp, collection);
 
 	if (php_oci_collection_size(collection, &size)) {
@@ -2408,18 +2436,18 @@ PHP_FUNCTION(oci_collection_max)
 	zval *tmp, *z_collection = getThis();
 	php_oci_collection *collection;
 	zend_long max;
-	
+
 	if (!getThis()) {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &z_collection, oci_coll_class_entry_ptr) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_collection), "collection", sizeof("collection")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find collection property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_COLLECTION(tmp, collection);
 
 	if (php_oci_collection_max(collection, &max)) {
@@ -2445,20 +2473,20 @@ PHP_FUNCTION(oci_collection_trim)
 	else {
 		if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ol", &z_collection, oci_coll_class_entry_ptr, &trim_size) == FAILURE) {
 			return;
-		}	
+		}
 	}
-	
+
 	if ((tmp = zend_hash_str_find(Z_OBJPROP_P(z_collection), "collection", sizeof("collection")-1)) == NULL) {
 		php_error_docref(NULL, E_WARNING, "Unable to find collection property");
 		RETURN_FALSE;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_COLLECTION(tmp, collection);
 
 	if (php_oci_collection_trim(collection, trim_size)) {
 		RETURN_FALSE;
 	}
-	RETURN_TRUE;	
+	RETURN_TRUE;
 }
 /* }}} */
 
@@ -2471,13 +2499,13 @@ PHP_FUNCTION(oci_new_collection)
 	php_oci_collection *collection;
 	char *tdo, *schema = NULL;
 	size_t tdo_len, schema_len = 0;
-	
+
 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs|s", &z_connection, &tdo, &tdo_len, &schema, &schema_len) == FAILURE) {
 		return;
 	}
-	
+
 	PHP_OCI_ZVAL_TO_CONNECTION(z_connection, connection);
-	
+
 	if ( (collection = php_oci_collection_create(connection, tdo, (int) tdo_len, schema, (int) schema_len)) ) {
 		object_init_ex(return_value, oci_coll_class_entry_ptr);
 		add_property_resource(return_value, "collection", collection->id);
diff -pruN 7.2.9-1/ext/oci8/oci8_lob.c 7.2.11-3/ext/oci8/oci8_lob.c
--- 7.2.9-1/ext/oci8/oci8_lob.c	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/oci8_lob.c	2018-10-09 15:09:41.000000000 +0000
@@ -67,7 +67,11 @@ php_oci_descriptor *php_oci_lob_create (
 	descriptor = ecalloc(1, sizeof(php_oci_descriptor));
 	descriptor->type = (ub4) type;
 	descriptor->connection = connection;
+#if PHP_VERSION_ID < 70300
 	++GC_REFCOUNT(descriptor->connection->id);
+#else
+	GC_ADDREF(descriptor->connection->id);
+#endif
 
 	PHP_OCI_CALL_RETURN(errstatus, OCIDescriptorAlloc, (connection->env, (dvoid*)&(descriptor->descriptor), descriptor->type, (size_t) 0, (dvoid **) 0));
 
@@ -81,7 +85,7 @@ php_oci_descriptor *php_oci_lob_create (
 	}
 
 	PHP_OCI_REGISTER_RESOURCE(descriptor, le_descriptor);
-	
+
 	descriptor->lob_current_position = 0;
 	descriptor->lob_size = -1;				/* we should set it to -1 to know, that it's just not initialized */
 	descriptor->buffering = PHP_OCI_LOB_BUFFER_DISABLED;				/* buffering is off by default */
@@ -97,7 +101,7 @@ php_oci_descriptor *php_oci_lob_create (
 			zend_hash_init(connection->descriptors, 0, NULL, php_oci_descriptor_flush_hash_dtor, 0);
 			connection->descriptor_count = 0;
 		}
-		
+
 		descriptor->index = (connection->descriptor_count)++;
 		if (connection->descriptor_count == LONG_MAX) {
 			php_error_docref(NULL, E_WARNING, "Internal descriptor counter has reached limit");
@@ -120,7 +124,7 @@ int php_oci_lob_get_length (php_oci_desc
 	sword errstatus;
 
 	*length = 0;
-	
+
 	if (descriptor->lob_size >= 0) {
 		*length = descriptor->lob_size;
 		return 0;
@@ -133,7 +137,7 @@ int php_oci_lob_get_length (php_oci_desc
 				return 1;
 			}
 		}
-		
+
 		PHP_OCI_CALL_RETURN(errstatus, OCILobGetLength, (connection->svc, connection->err, descriptor->descriptor, (ub4 *)length));
 
 		if (errstatus != OCI_SUCCESS) {
@@ -156,7 +160,7 @@ int php_oci_lob_get_length (php_oci_desc
 
 		connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	}
-	return 0;	
+	return 0;
 }
 /* }}} */
 
@@ -203,7 +207,7 @@ sb4 php_oci_lob_callback (dvoid *ctxp, C
 }
 /* }}} */
 
-/* {{{ php_oci_lob_calculate_buffer() 
+/* {{{ php_oci_lob_calculate_buffer()
    Work out the size for LOB buffering */
 static inline int php_oci_lob_calculate_buffer(php_oci_descriptor *descriptor, zend_long read_length)
 {
@@ -226,7 +230,7 @@ static inline int php_oci_lob_calculate_
 		descriptor->chunk_size = chunk_size;
 		connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	}
-	
+
 	if ((read_length % descriptor->chunk_size) != 0) {
 		return (int) descriptor->chunk_size * (((int) read_length / descriptor->chunk_size) + 1);
 	}
@@ -264,24 +268,24 @@ int php_oci_lob_read (php_oci_descriptor
 	if (length <= 0) {
 		return 0;
 	}
-	
+
 	if (initial_offset > length) {
 		php_error_docref(NULL, E_WARNING, "Offset must be less than size of the LOB");
 		return 1;
 	}
-		
+
 	if (read_length == -1) {
 		requested_len = length;
 	}
-	
+
 	if ((ub4) requested_len > (length - (ub4) initial_offset)) {
 		requested_len = length - initial_offset;
 	}
-	
+
 	if (requested_len <= 0) {
 		return 0;
 	}
-	
+
 	offset = initial_offset;
 
 	if (descriptor->type == OCI_DTYPE_FILE) {
@@ -352,15 +356,15 @@ int php_oci_lob_read (php_oci_descriptor
 			(ub1) descriptor->charset_form					  /* The character set form of the buffer data. */
 		)
 	);
-	
+
 	efree(bufp);
-	
+
 	if (is_clob) {
 		offset = descriptor->lob_current_position + chars_read;
 	} else {
 		offset = descriptor->lob_current_position + bytes_read;
 	}
-	
+
 	if (errstatus != OCI_SUCCESS) {
 		connection->errcode = php_oci_error(connection->err, errstatus);
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
@@ -371,7 +375,7 @@ int php_oci_lob_read (php_oci_descriptor
 		*data_len = 0;
 		return 1;
 	}
-	
+
 	descriptor->lob_current_position = (int)offset;
 
 	if (descriptor->type == OCI_DTYPE_FILE) {
@@ -402,20 +406,20 @@ int php_oci_lob_write (php_oci_descripto
 	php_oci_connection *connection = (php_oci_connection *) descriptor->connection;
 	ub4 lob_length;
 	sword errstatus;
-	
+
 	*bytes_written = 0;
 	if (php_oci_lob_get_length(descriptor, &lob_length)) {
 		return 1;
 	}
-	
+
 	if (!data || data_len <= 0) {
 		return 0;
 	}
-	
+
 	if (offset > descriptor->lob_current_position) {
 		offset = descriptor->lob_current_position;
 	}
-	
+
 	PHP_OCI_CALL_RETURN(errstatus, OCILobWrite,
 			(
 				connection->svc,
@@ -441,16 +445,16 @@ int php_oci_lob_write (php_oci_descripto
 	}
 	*bytes_written = data_len;
 	descriptor->lob_current_position += data_len;
-	
+
 	if ((int) descriptor->lob_current_position > (int) descriptor->lob_size) {
 		descriptor->lob_size = descriptor->lob_current_position;
 	}
-	
+
 	/* marking buffer as used */
 	if (descriptor->buffering == PHP_OCI_LOB_BUFFER_ENABLED) {
 		descriptor->buffering = PHP_OCI_LOB_BUFFER_USED;
 	}
-	
+
 	connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	return 0;
 }
@@ -467,12 +471,12 @@ int php_oci_lob_set_buffering (php_oci_d
 		/* disabling when it's already off */
 		return 0;
 	}
-	
+
 	if (on_off && descriptor->buffering != PHP_OCI_LOB_BUFFER_DISABLED) {
 		/* enabling when it's already on */
 		return 0;
 	}
-	
+
 	if (on_off) {
 		PHP_OCI_CALL_RETURN(errstatus, OCILobEnableBuffering, (connection->svc, connection->err, descriptor->descriptor));
 	} else {
@@ -509,11 +513,11 @@ int php_oci_lob_copy (php_oci_descriptor
 	php_oci_connection *connection = descriptor_dest->connection;
 	ub4 length_dest, length_from, copy_len;
 	sword errstatus;
-	
+
 	if (php_oci_lob_get_length(descriptor_dest, &length_dest)) {
 		return 1;
 	}
-	
+
 	if (php_oci_lob_get_length(descriptor_from, &length_from)) {
 		return 1;
 	}
@@ -546,7 +550,7 @@ int php_oci_lob_copy (php_oci_descriptor
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 		return 1;
 	}
-	
+
 	connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	return 0;
 }
@@ -573,7 +577,7 @@ int php_oci_lob_close (php_oci_descripto
 	if (php_oci_temp_lob_close(descriptor)) {
 		return 1;
 	}
-	
+
 	return 0;
 }
 /* }}} */
@@ -587,16 +591,16 @@ int php_oci_temp_lob_close (php_oci_desc
 	sword errstatus;
 
 	PHP_OCI_CALL_RETURN(errstatus, OCILobIsTemporary, (connection->env,connection->err, descriptor->descriptor, &is_temporary));
-	
+
 	if (errstatus != OCI_SUCCESS) {
 		connection->errcode = php_oci_error(connection->err, errstatus);
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 		return 1;
 	}
-	
+
 	if (is_temporary) {
 		PHP_OCI_CALL_RETURN(errstatus, OCILobFreeTemporary, (connection->svc, connection->err, descriptor->descriptor));
-		
+
 		if (errstatus != OCI_SUCCESS) {
 			connection->errcode = php_oci_error(connection->err, errstatus);
 			PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
@@ -630,7 +634,7 @@ int php_oci_lob_flush(php_oci_descriptor
 			return 1;
 			break;
 	}
-	
+
 	/* do not really flush buffer, but report success
 	 * to suppress OCI error when flushing not used buffer
 	 * */
@@ -683,7 +687,7 @@ void php_oci_lob_free (php_oci_descripto
 			}
 		}
 	}
-	
+
 	/* flushing Lobs & Files with buffering enabled */
 	if ((descriptor->type == OCI_DTYPE_FILE || descriptor->type == OCI_DTYPE_LOB) && descriptor->buffering == PHP_OCI_LOB_BUFFER_USED) {
 		php_oci_lob_flush(descriptor, OCI_LOB_BUFFER_FREE);
@@ -711,17 +715,17 @@ int php_oci_lob_import (php_oci_descript
 	char buf[8192];
 	ub4 offset = 1;
 	sword errstatus;
-	
+
 	if (php_check_open_basedir(filename)) {
 		return 1;
 	}
-	
+
 	if ((fp = VCWD_OPEN(filename, O_RDONLY|O_BINARY)) == -1) {
 		php_error_docref(NULL, E_WARNING, "Can't open file %s", filename);
 		return 1;
 	}
 
-	while ((loblen = read(fp, &buf, sizeof(buf))) > 0) {	
+	while ((loblen = read(fp, &buf, sizeof(buf))) > 0) {
 		PHP_OCI_CALL_RETURN(errstatus,
 				OCILobWrite,
 				(
@@ -751,7 +755,7 @@ int php_oci_lob_import (php_oci_descript
 		offset += loblen;
 	}
 	close(fp);
-	
+
 	return 0;
 }
  	/* }}} */
@@ -769,7 +773,7 @@ int php_oci_lob_append (php_oci_descript
 	if (php_oci_lob_get_length(descriptor_dest, &dest_len)) {
 		return 1;
 	}
-	
+
 	if (php_oci_lob_get_length(descriptor_from, &from_len)) {
 		return 1;
 	}
@@ -798,11 +802,11 @@ int php_oci_lob_truncate (php_oci_descri
 	OCILobLocator *lob = descriptor->descriptor;
 	ub4 lob_length;
 	sword errstatus;
-	
+
 	if (php_oci_lob_get_length(descriptor, &lob_length)) {
 		return 1;
 	}
-	
+
 	if (lob_length <= 0) {
 		return 0;
 	}
@@ -816,7 +820,7 @@ int php_oci_lob_truncate (php_oci_descri
 		php_error_docref(NULL, E_WARNING, "Size must be less than or equal to the current LOB size");
 		return 1;
 	}
-	
+
 	PHP_OCI_CALL_RETURN(errstatus, OCILobTrim, (connection->svc, connection->err, lob, (ub4) new_lob_length));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -824,7 +828,7 @@ int php_oci_lob_truncate (php_oci_descri
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 		return 1;
 	}
-	
+
 	descriptor->lob_size = (ub4) new_lob_length;
 	connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 
@@ -842,11 +846,11 @@ int php_oci_lob_erase (php_oci_descripto
 	sword errstatus;
 
 	*bytes_erased = 0;
-	
+
 	if (php_oci_lob_get_length(descriptor, &lob_length)) {
 		return 1;
 	}
-	
+
 	if (offset == -1) {
 		offset = descriptor->lob_current_position;
 	}
@@ -854,7 +858,7 @@ int php_oci_lob_erase (php_oci_descripto
 	if (length == -1) {
 		length = lob_length;
 	}
-	
+
 	PHP_OCI_CALL_RETURN(errstatus, OCILobErase, (connection->svc, connection->err, lob, (ub4 *)&length, (ub4) offset+1));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -862,7 +866,7 @@ int php_oci_lob_erase (php_oci_descripto
 		PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 		return 1;
 	}
-	
+
 	*bytes_erased = length;
 	connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	return 0;
@@ -898,7 +902,7 @@ int php_oci_lob_write_tmp (php_oci_descr
 	OCILobLocator *lob		   = descriptor->descriptor;
 	ub4 bytes_written = 0;
 	sword errstatus;
-	
+
 	switch (type) {
 		case OCI_TEMP_BLOB:
 		case OCI_TEMP_CLOB:
diff -pruN 7.2.9-1/ext/oci8/oci8_statement.c 7.2.11-3/ext/oci8/oci8_statement.c
--- 7.2.9-1/ext/oci8/oci8_statement.c	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/oci8_statement.c	2018-10-09 15:09:41.000000000 +0000
@@ -60,9 +60,9 @@ php_oci_statement *php_oci_statement_cre
 		/* do not allocate stmt handle for refcursors, we'll get it from OCIStmtPrepare2() */
 		PHP_OCI_CALL(OCIHandleAlloc, (connection->env, (dvoid **)&(statement->stmt), OCI_HTYPE_STMT, 0, NULL));
 	}
-		
+
 	PHP_OCI_CALL(OCIHandleAlloc, (connection->env, (dvoid **)&(statement->err), OCI_HTYPE_ERROR, 0, NULL));
-	
+
 	if (query_len > 0) {
 		PHP_OCI_CALL_RETURN(errstatus, OCIStmtPrepare2,
 				(
@@ -93,7 +93,7 @@ php_oci_statement *php_oci_statement_cre
 			return NULL;
 		}
 	}
-	
+
 	if (query && query_len) {
 		statement->last_query = ecalloc(1, query_len + 1);
 		memcpy(statement->last_query, query, query_len);
@@ -111,18 +111,22 @@ php_oci_statement *php_oci_statement_cre
 	statement->impres_child_stmt = NULL;
 	statement->impres_count = 0;
 	statement->impres_flag = PHP_OCI_IMPRES_UNKNOWN;  /* may or may not have Implicit Result Set children */
+#if PHP_VERSION_ID < 70300
 	++GC_REFCOUNT(statement->connection->id);
+#else
+	GC_ADDREF(statement->connection->id);
+#endif
 
 	if (OCI_G(default_prefetch) >= 0) {
 		php_oci_statement_set_prefetch(statement, (ub4)OCI_G(default_prefetch));
 	} else {
 		php_oci_statement_set_prefetch(statement, (ub4)100); /* semi-arbitrary, "sensible default" */
 	}
-	
+
 	PHP_OCI_REGISTER_RESOURCE(statement, le_statement);
 
 	OCI_G(num_statements)++;
-	
+
 	return statement;
 }
 /* }}} */
@@ -153,7 +157,7 @@ php_oci_statement *php_oci_get_implicit_
 		statement2 = ecalloc(1,sizeof(php_oci_statement));
 
 		PHP_OCI_CALL(OCIHandleAlloc, (statement->connection->env, (dvoid **)&(statement2->err), OCI_HTYPE_ERROR, 0, NULL));
-		statement2->stmt = (OCIStmt *)result;	
+		statement2->stmt = (OCIStmt *)result;
 		statement2->parent_stmtid = statement->id;
 		statement2->impres_child_stmt = NULL;
 		statement2->impres_count = 0;
@@ -171,15 +175,20 @@ php_oci_statement *php_oci_get_implicit_
 		statement2->has_descr = 0;
 		statement2->stmttype = 0;
 
+#if PHP_VERSION_ID < 70300
 		GC_REFCOUNT(statement->id)++;
 		GC_REFCOUNT(statement2->connection->id)++;
+#else
+		GC_ADDREF(statement->id);
+		GC_ADDREF(statement2->connection->id);
+#endif
 
 		php_oci_statement_set_prefetch(statement2, statement->prefetch_count);
-		
+
 		PHP_OCI_REGISTER_RESOURCE(statement2, le_statement);
-	
+
 		OCI_G(num_statements)++;
-		
+
 		return statement2;
 	}
 #endif /* OCI_MAJOR_VERSION < 12 */
@@ -197,7 +206,7 @@ int php_oci_statement_set_prefetch(php_o
 	}
 
 	PHP_OCI_CALL_RETURN(errstatus, OCIAttrSet, (statement->stmt, OCI_HTYPE_STMT, &prefetch, 0, OCI_ATTR_PREFETCH_ROWS, statement->err));
-	
+
 	if (errstatus != OCI_SUCCESS) {
 		statement->errcode = php_oci_error(statement->err, errstatus);
 		PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
@@ -293,7 +302,7 @@ int php_oci_statement_fetch(php_oci_stat
 			piecewisecols = 1;
 		}
 	}
-	
+
 	while (errstatus == OCI_NEED_DATA) {
 		if (piecewisecols) {
 			PHP_OCI_CALL_RETURN(errstatus,
@@ -359,11 +368,11 @@ int php_oci_statement_fetch(php_oci_stat
 			if (column == NULL) {
 				continue;
 			}
-			
+
 			if (!column->define) {
 				continue;
 			}
-			
+
 			ZEND_ASSERT(Z_ISREF(column->define->val));
 			zval_ptr_dtor(Z_REFVAL(column->define->val));
 			ZVAL_NULL(Z_REFVAL(column->define->val));
@@ -419,11 +428,11 @@ sb4 php_oci_define_callback(dvoid *ctx,
 	php_oci_out_column *outcol = (php_oci_out_column *)ctx;
 
 	if (!outcol) {
-		
+
 		php_error_docref(NULL, E_WARNING, "Invalid context pointer value");
 		return OCI_ERROR;
 	}
-	
+
 	switch(outcol->data_type) {
 		case SQLT_RSET: {
 				php_oci_statement *nested_stmt;
@@ -433,7 +442,11 @@ sb4 php_oci_define_callback(dvoid *ctx,
 					return OCI_ERROR;
 				}
 				nested_stmt->parent_stmtid = outcol->statement->id;
+#if PHP_VERSION_ID < 70300
 				++GC_REFCOUNT(outcol->statement->id);
+#else
+				GC_ADDREF(outcol->statement->id);
+#endif
 				outcol->nested_statement = nested_stmt;
 				outcol->stmtid = nested_stmt->id;
 
@@ -466,7 +479,7 @@ sb4 php_oci_define_callback(dvoid *ctx,
 				}
 				outcol->descid = descr->id;
 				descr->charset_form = outcol->charset_form;
-				
+
 				*bufpp = descr->descriptor;
 				*alenpp = &(outcol->retlen4);
 				*piecep = OCI_ONE_PIECE;
@@ -512,7 +525,7 @@ int php_oci_statement_execute(php_oci_st
 			return 1;
 			break;
 	}
-	
+
 	if (!statement->stmttype) {
 		/* get statement type */
 		PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)statement->stmt, OCI_HTYPE_STMT, (ub2 *)&statement->stmttype, (ub4 *)0, OCI_ATTR_STMT_TYPE, statement->err));
@@ -531,7 +544,7 @@ int php_oci_statement_execute(php_oci_st
 	} else {
 		iters = 1;
 	}
-	
+
 	if (statement->last_query) { /* Don't execute REFCURSORS or Implicit Result Set handles */
 
 		if (statement->binds) {
@@ -550,7 +563,7 @@ int php_oci_statement_execute(php_oci_st
 			PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
 			return 1;
 		}
-		
+
 		if (statement->binds) {
 			zend_hash_apply(statement->binds, php_oci_bind_post_exec);
 		}
@@ -575,15 +588,15 @@ int php_oci_statement_execute(php_oci_st
 	if (statement->stmttype == OCI_STMT_SELECT && statement->executed == 0) {
 		/* we only need to do the define step is this very statement is executed the first time! */
 		statement->executed = 1;
-		
+
 		ALLOC_HASHTABLE(statement->columns);
 		zend_hash_init(statement->columns, 13, NULL, php_oci_column_hash_dtor, 0);
-		
+
 		counter = 1;
 
 		/* get number of columns */
 		PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)statement->stmt, OCI_HTYPE_STMT, (dvoid *)&colcount, (ub4 *)0, OCI_ATTR_PARAM_COUNT, statement->err));
-		
+
 		if (errstatus != OCI_SUCCESS) {
 			statement->errcode = php_oci_error(statement->err, errstatus);
 			PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
@@ -591,19 +604,23 @@ int php_oci_statement_execute(php_oci_st
 		}
 
 		statement->ncolumns = colcount;
-		
+
 		for (counter = 1; counter <= colcount; counter++) {
 			outcol = (php_oci_out_column *) ecalloc(1, sizeof(php_oci_out_column));
-			
+
+#if PHP_VERSION_ID < 70300
 			if ((outcol = zend_hash_index_update_ptr(statement->columns, counter, outcol)) == NULL) {
 				FREE_HASHTABLE(statement->columns);
 				/* out of memory */
 				return 1;
 			}
-			
+#else
+			outcol = zend_hash_index_update_ptr(statement->columns, counter, outcol);
+#endif
+
 			/* get column */
 			PHP_OCI_CALL_RETURN(errstatus, OCIParamGet, ((dvoid *)statement->stmt, OCI_HTYPE_STMT, statement->err, (dvoid**)&param, counter));
-			
+
 			if (errstatus != OCI_SUCCESS) {
 				statement->errcode = php_oci_error(statement->err, errstatus);
 				PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
@@ -629,7 +646,7 @@ int php_oci_statement_execute(php_oci_st
 				PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
 				return 1;
 			}
-	
+
 			/* get character set id	 */
 			PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)param, OCI_DTYPE_PARAM, (dvoid *)&outcol->charset_id, (ub4 *)0, OCI_ATTR_CHARSET_ID, statement->err));
 
@@ -639,10 +656,10 @@ int php_oci_statement_execute(php_oci_st
 				PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
 				return 1;
 			}
-	
+
 			/* get size of the column */
 			PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)param, OCI_DTYPE_PARAM, (dvoid *)&outcol->data_size, (dvoid *)0, OCI_ATTR_DATA_SIZE, statement->err));
-			
+
 			if (errstatus != OCI_SUCCESS) {
 				PHP_OCI_CALL(OCIDescriptorFree, (param, OCI_DTYPE_PARAM));
 				statement->errcode = php_oci_error(statement->err, errstatus);
@@ -655,7 +672,7 @@ int php_oci_statement_execute(php_oci_st
 
 			/* get scale of the column */
 			PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)param, OCI_DTYPE_PARAM, (dvoid *)&outcol->scale, (dvoid *)0, OCI_ATTR_SCALE, statement->err));
-			
+
 			if (errstatus != OCI_SUCCESS) {
 				PHP_OCI_CALL(OCIDescriptorFree, (param, OCI_DTYPE_PARAM));
 				statement->errcode = php_oci_error(statement->err, errstatus);
@@ -665,17 +682,17 @@ int php_oci_statement_execute(php_oci_st
 
 			/* get precision of the column */
 			PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)param, OCI_DTYPE_PARAM, (dvoid *)&outcol->precision, (dvoid *)0, OCI_ATTR_PRECISION, statement->err));
-			
+
 			if (errstatus != OCI_SUCCESS) {
 				PHP_OCI_CALL(OCIDescriptorFree, (param, OCI_DTYPE_PARAM));
 				statement->errcode = php_oci_error(statement->err, errstatus);
 				PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
 				return 1;
 			}
-			
+
 			/* get name of the column */
 			PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)param, OCI_DTYPE_PARAM, (dvoid **)&colname, (ub4 *)&outcol->name_len, (ub4)OCI_ATTR_NAME, statement->err));
-			
+
 			if (errstatus != OCI_SUCCESS) {
 				PHP_OCI_CALL(OCIDescriptorFree, (param, OCI_DTYPE_PARAM));
 				statement->errcode = php_oci_error(statement->err, errstatus);
@@ -766,9 +783,9 @@ int php_oci_statement_execute(php_oci_st
 					} else {
 						outcol->storage_size4++; /* add one for string terminator */
 					}
-					
+
 					outcol->storage_size4 *= 3;
-					
+
 					dynamic = OCI_DEFAULT;
 					buf = outcol->data = (text *) safe_emalloc(1, outcol->storage_size4, 0);
 					memset(buf, 0, outcol->storage_size4);
@@ -812,7 +829,7 @@ int php_oci_statement_execute(php_oci_st
 				);
 
 			}
-			
+
 			if (errstatus != OCI_SUCCESS) {
 				statement->errcode = php_oci_error(statement->err, errstatus);
 				PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
@@ -902,7 +919,7 @@ void php_oci_statement_free(php_oci_stat
 
 	zend_list_delete(statement->connection->id);
 	efree(statement);
-	
+
 	OCI_G(num_statements)--;
 }
 /* }}} */
@@ -923,7 +940,7 @@ int php_oci_bind_pre_exec(zval *data, vo
 		 * bind->indicator are not used for oci_bind_array_by_name.
 		 */
 		return 0;
-	}	
+	}
 	switch (bind->type) {
 		case SQLT_NTY:
 		case SQLT_BFILEE:
@@ -936,7 +953,7 @@ int php_oci_bind_pre_exec(zval *data, vo
 				*(int *)result = 1;
 			}
 			break;
-			
+
 		case SQLT_CHR:
 		case SQLT_AFC:
 		case SQLT_INT:
@@ -993,8 +1010,12 @@ int php_oci_bind_post_exec(zval *data)
 		 * binds, php_oci_bind_out_callback() should have allocated a
 		 * new string that we can modify here.
 		 */
+#if PHP_VERSION_ID < 70300
 		SEPARATE_STRING(zv);
 		Z_STR_P(zv) = zend_string_extend(Z_STR_P(zv), Z_STRLEN_P(zv)+1, 0);
+#else
+		ZVAL_NEW_STR(zv, zend_string_extend(Z_STR_P(zv), Z_STRLEN_P(zv)+1, 0));
+#endif
 		Z_STRVAL_P(zv)[ Z_STRLEN_P(zv) ] = '\0';
 	} else if (Z_TYPE_P(zv) == IS_ARRAY) {
 		int i;
@@ -1036,7 +1057,7 @@ int php_oci_bind_post_exec(zval *data)
 					ub4 buff_len = 1024;
 
 					memset((void*)buff,0,sizeof(buff));
-							
+
 					if ((i < (int) bind->array.old_length) && (entry = zend_hash_get_current_data(hash)) != NULL) {
 						PHP_OCI_CALL_RETURN(errstatus, OCIDateToText, (connection->err, &(((OCIDate *)(bind->array.elements))[i]), 0, 0, 0, 0, &buff_len, buff));
 						zval_ptr_dtor(entry);
@@ -1063,7 +1084,7 @@ int php_oci_bind_post_exec(zval *data)
 					}
 				}
 				break;
-	
+
 			case SQLT_AFC:
 			case SQLT_CHR:
 			case SQLT_VCS:
@@ -1119,7 +1140,7 @@ int php_oci_bind_by_name(php_oci_stateme
 		case SQLT_NTY:
 		{
 			zval *tmp;
-			
+
 			if (Z_TYPE_P(param) != IS_OBJECT || (tmp = zend_hash_str_find(Z_OBJPROP_P(param), "collection", sizeof("collection")-1)) == NULL) {
 				php_error_docref(NULL, E_WARNING, "Unable to find collection property");
 				return 1;
@@ -1128,7 +1149,7 @@ int php_oci_bind_by_name(php_oci_stateme
 			PHP_OCI_ZVAL_TO_COLLECTION_EX(tmp, bind_collection);
 			value_sz = sizeof(void*);
 			mode = OCI_DEFAULT;
-		
+
 			if (!bind_collection->collection) {
 				return 1;
 			}
@@ -1141,7 +1162,7 @@ int php_oci_bind_by_name(php_oci_stateme
 		case SQLT_RDD:
 		{
 			zval *tmp;
-			
+
 			if (Z_TYPE_P(param) != IS_OBJECT || (tmp = zend_hash_str_find(Z_OBJPROP_P(param), "descriptor", sizeof("descriptor")-1)) == NULL) {
 				php_error_docref(NULL, E_WARNING, "Unable to find descriptor property");
 				return 1;
@@ -1150,15 +1171,15 @@ int php_oci_bind_by_name(php_oci_stateme
 			PHP_OCI_ZVAL_TO_DESCRIPTOR_EX(tmp, bind_descriptor);
 
 			value_sz = sizeof(void*);
-			
+
 			oci_desc = bind_descriptor->descriptor;
-			
+
 			if (!oci_desc) {
 				return 1;
 			}
 		}
 			break;
-			
+
 		case SQLT_INT:
 		case SQLT_NUM:
 			if (Z_TYPE_P(param) == IS_RESOURCE || Z_TYPE_P(param) == IS_OBJECT) {
@@ -1170,7 +1191,7 @@ int php_oci_bind_by_name(php_oci_stateme
 			value_sz = sizeof(oci_phpsized_int);
 			mode = OCI_DEFAULT;
 			break;
-			
+
 		case SQLT_LBI:
 		case SQLT_BIN:
 		case SQLT_LNG:
@@ -1257,15 +1278,19 @@ int php_oci_bind_by_name(php_oci_stateme
 		zvtmp = zend_string_init(name, name_len, 0);
 		bindp = (php_oci_bind *) ecalloc(1, sizeof(php_oci_bind));
 		bindp = zend_hash_update_ptr(statement->binds, zvtmp, bindp);
+#if PHP_VERSION_ID < 70300
 		zend_string_release(zvtmp);
+#else
+		zend_string_release_ex(zvtmp, 0);
+#endif
 	}
 
-	/* Make sure the minimum of value_sz is 1 to avoid ORA-3149 
+	/* Make sure the minimum of value_sz is 1 to avoid ORA-3149
 	 * when both in/out parameters are bound with empty strings
 	 */
 	if (value_sz == 0)
 		value_sz = 1;
-	
+
 	bindp->descriptor = oci_desc;
 	bindp->statement = oci_stmt;
 	bindp->parent_statement = statement;
@@ -1283,7 +1308,7 @@ int php_oci_bind_by_name(php_oci_stateme
 			statement->stmt,				 /* statement handle */
 			(OCIBind **)&bindp->bind,		 /* bind hdl (will alloc) */
 			statement->err,				  	 /* error handle */
-			(text*) name,					 /* placeholder name */					
+			(text*) name,					 /* placeholder name */
 			(sb4) name_len,					 /* placeholder length */
 			(dvoid *)bind_data,				 /* in/out data */
 			value_sz, /* PHP_OCI_MAX_DATA_SIZE, */ /* max size of input/output data */
@@ -1335,14 +1360,14 @@ int php_oci_bind_by_name(php_oci_stateme
 				 (ub4 *) 0
 				)
 		);
-		
+
 		if (errstatus) {
 			statement->errcode = php_oci_error(statement->err, errstatus);
 			PHP_OCI_HANDLE_ERROR(statement->connection, statement->errcode);
 			return 1;
 		}
 	}
-	
+
 	statement->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	return 0;
 }
@@ -1484,7 +1509,7 @@ sb4 php_oci_bind_out_callback(
 		Z_STRVAL_P(val) = ecalloc(1, Z_STRLEN_P(val) + 1);
 		/* XXX is this right? */
 		ZVAL_STRINGL(val, NULL, Z_STRLEN(val) + 1);
-#endif		
+#endif
 
 		/* XXX we assume that zend-zval len has 4 bytes */
 		*alenpp = (ub4*) &Z_STRLEN_P(val);
@@ -1520,7 +1545,7 @@ php_oci_out_column *php_oci_statement_ge
 	if (need_data && !statement->has_data) {
 		return NULL;
 	}
-	
+
 	if (Z_TYPE_P(column_index) == IS_STRING) {
 		column = php_oci_statement_get_column(statement, -1, Z_STRVAL_P(column_index), (int) Z_STRLEN_P(column_index));
 		if (!column) {
@@ -1528,6 +1553,7 @@ php_oci_out_column *php_oci_statement_ge
 			return NULL;
 		}
 	} else {
+#if PHP_VERSION_ID < 70300
 		zval tmp;
 		/* NB: for PHP4 compat only, it should be using 'Z' instead */
 		tmp = *column_index;
@@ -1540,6 +1566,17 @@ php_oci_out_column *php_oci_statement_ge
 			return NULL;
 		}
 		zval_ptr_dtor(&tmp);
+#else
+		zend_long tmp;
+		/* NB: for PHP4 compat only, it should be using 'Z' instead */
+
+		tmp = zval_get_long(column_index);
+		column = php_oci_statement_get_column(statement, tmp, NULL, 0);
+		if (!column) {
+			php_error_docref(NULL, E_WARNING, "Invalid column index \"" ZEND_LONG_FMT "\"", tmp);
+			return NULL;
+		}
+#endif
 	}
 	return column;
 }
@@ -1551,9 +1588,9 @@ int php_oci_statement_get_type(php_oci_s
 {
 	ub2 statement_type;
 	sword errstatus;
-	
+
 	*type = 0;
-	
+
 	PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)statement->stmt, OCI_HTYPE_STMT, (ub2 *)&statement_type, (ub4 *)0, OCI_ATTR_STMT_TYPE, statement->err));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -1574,9 +1611,9 @@ int php_oci_statement_get_numrows(php_oc
 {
 	ub4 statement_numrows;
 	sword errstatus;
-	
+
 	*numrows = 0;
-	
+
 	PHP_OCI_CALL_RETURN(errstatus, OCIAttrGet, ((dvoid *)statement->stmt, OCI_HTYPE_STMT, (ub4 *)&statement_numrows, (ub4 *)0, OCI_ATTR_ROW_COUNT, statement->err));
 
 	if (errstatus != OCI_SUCCESS) {
@@ -1602,14 +1639,19 @@ int php_oci_bind_array_by_name(php_oci_s
 
 	ZEND_ASSERT(Z_ISREF_P(var));
 	val = Z_REFVAL_P(var);
+#if PHP_VERSION_ID < 70300
 	SEPARATE_ZVAL_NOREF(val);
 	convert_to_array(val);
+#else
+	convert_to_array(val);
+	SEPARATE_ARRAY(val);
+#endif
 
 	if (maxlength < -1) {
 		php_error_docref(NULL, E_WARNING, "Invalid max length value (" ZEND_LONG_FMT ")", maxlength);
 		return 1;
 	}
-	
+
 	switch(type) {
 		case SQLT_NUM:
 		case SQLT_INT:
@@ -1620,7 +1662,7 @@ int php_oci_bind_array_by_name(php_oci_s
 		case SQLT_FLT:
 			bind = php_oci_bind_array_helper_double(val, max_table_length);
 			break;
-			
+
 		case SQLT_AFC:
 		case SQLT_CHR:
 		case SQLT_VCS:
@@ -1646,7 +1688,7 @@ int php_oci_bind_array_by_name(php_oci_s
 		/* failed to generate bind struct */
 		return 1;
 	}
-	
+
 	bind->descriptor = NULL;
 	bind->statement = NULL;
 	bind->parent_statement = statement;
@@ -1675,8 +1717,8 @@ int php_oci_bind_array_by_name(php_oci_s
 								(ub4) OCI_DEFAULT
 							)
 						);
-	
-		
+
+
 	if (errstatus != OCI_SUCCESS) {
 		if (bind->array.elements) {
 			efree(bind->array.elements);
@@ -1706,7 +1748,11 @@ int php_oci_bind_array_by_name(php_oci_s
 
 	zvtmp = zend_string_init(name, name_len, 0);
 	zend_hash_update_ptr(statement->binds, zvtmp, bind);
+#if PHP_VERSION_ID < 70300
 	zend_string_release(zvtmp);
+#else
+	zend_string_release_ex(zvtmp, 0);
+#endif
 
 	statement->errcode = 0; /* retain backwards compat with OCI8 1.4 */
 	return 0;
@@ -1737,7 +1783,7 @@ php_oci_bind *php_oci_bind_array_helper_
 			zend_hash_move_forward(hash);
 		}
 	}
-	
+
 	bind = emalloc(sizeof(php_oci_bind));
 	ZVAL_UNDEF(&bind->val);
 	bind->array.elements		= (text *)safe_emalloc(max_table_length * (maxlength + 1), sizeof(text), 0);
@@ -1749,9 +1795,9 @@ php_oci_bind *php_oci_bind_array_helper_
 	memset(bind->array.element_lengths, 0, max_table_length*sizeof(ub2));
 	bind->array.indicators		= safe_emalloc(max_table_length, sizeof(sb2), 0);
 	memset(bind->array.indicators, 0, max_table_length*sizeof(sb2));
-	
+
 	zend_hash_internal_pointer_reset(hash);
-	
+
 	for (i = 0; i < bind->array.current_length; i++) {
 		if ((entry = zend_hash_get_current_data(hash)) != NULL) {
 			convert_to_string_ex(entry);
@@ -1769,13 +1815,13 @@ php_oci_bind *php_oci_bind_array_helper_
 	for (i = 0; i < max_table_length; i++) {
 		if ((i < bind->array.current_length) && (entry = zend_hash_get_current_data(hash)) != NULL) {
 			int element_length;
-			
+
 			convert_to_string_ex(entry);
 			element_length = ((size_t) maxlength > Z_STRLEN_P(entry)) ? (int) Z_STRLEN_P(entry) : (int) maxlength;
-			
+
 			memcpy((text *)bind->array.elements + i*maxlength, Z_STRVAL_P(entry), element_length);
 			((text *)bind->array.elements)[i*maxlength + element_length] = '\0';
-			
+
 			zend_hash_move_forward(hash);
 		} else {
 			((text *)bind->array.elements)[i*maxlength] = '\0';
@@ -1808,7 +1854,7 @@ php_oci_bind *php_oci_bind_array_helper_
 	bind->array.element_lengths	= safe_emalloc(max_table_length, sizeof(ub2), 0);
 	memset(bind->array.element_lengths, 0, max_table_length * sizeof(ub2));
 	bind->array.indicators		= NULL;
-	
+
 	zend_hash_internal_pointer_reset(hash);
 	for (i = 0; i < max_table_length; i++) {
 		if (i < bind->array.current_length) {
@@ -1849,7 +1895,7 @@ php_oci_bind *php_oci_bind_array_helper_
 	bind->array.element_lengths	= safe_emalloc(max_table_length, sizeof(ub2), 0);
 	memset(bind->array.element_lengths, 0, max_table_length * sizeof(ub2));
 	bind->array.indicators		= NULL;
-	
+
 	zend_hash_internal_pointer_reset(hash);
 	for (i = 0; i < max_table_length; i++) {
 		if (i < bind->array.current_length) {
@@ -1899,7 +1945,7 @@ php_oci_bind *php_oci_bind_array_helper_
 			bind->array.element_lengths[i] = sizeof(OCIDate);
 		}
 		if ((i < bind->array.current_length) && (entry = zend_hash_get_current_data(hash)) != NULL) {
-			
+
 			convert_to_string_ex(entry);
 			PHP_OCI_CALL_RETURN(errstatus, OCIDateFromText, (connection->err, (CONST text *)Z_STRVAL_P(entry), (ub4) Z_STRLEN_P(entry), NULL, 0, NULL, 0, &oci_date));
 
@@ -1912,7 +1958,7 @@ php_oci_bind *php_oci_bind_array_helper_
 				PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 				return NULL;
 			}
-			
+
 			((OCIDate *)bind->array.elements)[i] = oci_date;
 			zend_hash_move_forward(hash);
 		} else {
@@ -1927,7 +1973,7 @@ php_oci_bind *php_oci_bind_array_helper_
 				PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
 				return NULL;
 			}
-	
+
 			((OCIDate *)bind->array.elements)[i] = oci_date;
 		}
 		connection->errcode = 0; /* retain backwards compat with OCI8 1.4 */
diff -pruN 7.2.9-1/ext/oci8/package.xml 7.2.11-3/ext/oci8/package.xml
--- 7.2.9-1/ext/oci8/package.xml	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/package.xml	2018-10-09 15:09:41.000000000 +0000
@@ -508,7 +508,7 @@ Fixed bug #74625 (Integer overflow in oc
   </notes>
 </release>
 
-<release>   
+<release>
  <version>
    <release>2.1.5</release>
    <api>2.1.5</api>
@@ -520,9 +520,9 @@ Fixed bug #74625 (Integer overflow in oc
   <license uri="http://www.php.net/license">PHP</license>
   <notes>
 This version is for PHP 7 only.
-Added TAF callback support (PR #2459, KoenigsKind) 
+Added TAF callback support (PR #2459, KoenigsKind)
   </notes>
-</release>   
+</release>
 
 <release>
   <version>
@@ -555,7 +555,7 @@ This version is for PHP 7 only.
 Fixed bug #71148 (Bind reference overwritten on PHP 7)
   </notes>
 </release>
-   
+
 <release>
   <version>
    <release>2.1.2</release>
@@ -588,7 +588,7 @@ This version is for PHP 7 only.
 Fixed bug #71600 (oci_fetch_all segfaults when selecting more than 8 columns)
   </notes>
 </release>
-   
+
 <release>
   <version>
    <release>2.1.0</release>
@@ -601,7 +601,7 @@ Fixed bug #71600 (oci_fetch_all segfault
   <license uri="http://www.php.net/license">PHP</license>
   <notes>
 This version is for PHP 7 only.
-Updated driver name format.    
+Updated driver name format.
   </notes>
 </release>
 
@@ -661,7 +661,7 @@ Enhancement - Improve performance of mul
   </stability>
   <license uri="http://www.php.net/license">PHP</license>
   <notes>
-Added oci_bind_by_name() support for PL/SQL BOOLEAN type    
+Added oci_bind_by_name() support for PL/SQL BOOLEAN type
 Build change: Fix source variable definition for C89 compatibility
   </notes>
 </release>
@@ -763,7 +763,7 @@ Add the connection handle to several DTr
    <api>devel</api>
   </stability>
   <license uri="http://www.php.net/license">PHP</license>
-  <notes> 
+  <notes>
 Fixed --enable-maintainer-zts mode.
 Allow Implicit Result Set statement resources to inherit the parent's current prefetch count.
 Allow OCI8 to be DTrace-enabled independently from core PHP.
@@ -781,7 +781,7 @@ Require OCI8 to be configured 'shared' w
    <api>devel</api>
   </stability>
   <license uri="http://www.php.net/license">PHP</license>
-  <notes> 
+  <notes>
 - NEW FUNCTIONALITY:
 
   - Added Implicit Result Set support for Oracle Database 12c.
@@ -844,7 +844,7 @@ Require OCI8 to be configured 'shared' w
   - Regularized code prototypes and fixed some in-line documentation
     prototypes.
 
-  - Fixed code folding. 
+  - Fixed code folding.
   </notes>
 </release>
 
diff -pruN 7.2.9-1/ext/oci8/php_oci8_int.h 7.2.11-3/ext/oci8/php_oci8_int.h
--- 7.2.9-1/ext/oci8/php_oci8_int.h	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/php_oci8_int.h	2018-10-09 15:09:41.000000000 +0000
@@ -98,7 +98,7 @@ extern zend_class_entry *oci_coll_class_
 #define PHP_OCI_ERRBUF_LEN OCI_ERROR_MAXMSG_SIZE2
 #else
 #define PHP_OCI_ERRBUF_LEN OCI_ERROR_MAXMSG_SIZE
-#endif 
+#endif
 
 /* The mode parameter for oci_connect() is overloaded and accepts both
  * privilege and external authentication flags OR'd together.
@@ -136,7 +136,7 @@ typedef struct {
 /* }}} */
 
 /* {{{ php_oci_connection */
-typedef struct { 
+typedef struct {
 	zend_resource  *id;							/* resource ID */
 	OCIEnv		   *env;						/* private env handle */
 	ub2				charset;					/* charset ID */
@@ -170,7 +170,7 @@ typedef struct {
 /* }}} */
 
 /* {{{ php_oci_descriptor */
-typedef struct { 
+typedef struct {
 	zend_resource		*id;
 	zend_ulong				 index;		            /* descriptors hash table index */
 	php_oci_connection	*connection;			/* parent connection handle */
@@ -187,7 +187,7 @@ typedef struct {
 /* }}} */
 
 /* {{{ php_oci_lob_ctx */
-typedef struct { 
+typedef struct {
 	char			   **lob_data;				/* address of pointer to LOB data */
 	ub4					*lob_len;				/* address of LOB length variable (bytes) */
 	ub4					 alloc_len;
@@ -195,7 +195,7 @@ typedef struct {
 /* }}} */
 
 /* {{{ php_oci_collection */
-typedef struct { 
+typedef struct {
 	zend_resource		*id;
 	php_oci_connection	*connection;			/* parent connection handle */
 	OCIType				*tdo;					/* collection's type handle */
@@ -208,7 +208,7 @@ typedef struct {
 /* }}} */
 
 /* {{{ php_oci_define */
-typedef struct { 
+typedef struct {
 	zval		 val;			/* zval used in define */
 	text		*name;			/* placeholder's name */
 	ub4			 name_len;		/* placeholder's name length */
@@ -217,7 +217,7 @@ typedef struct {
 /* }}} */
 
 /* {{{ php_oci_statement */
-typedef struct { 
+typedef struct {
 	zend_resource		*id;
 	zend_resource	 	*parent_stmtid;			/* parent statement id */
 	struct php_oci_statement *impres_child_stmt;/* child of current Implicit Result Set statement handle */
@@ -242,7 +242,7 @@ typedef struct {
 /* }}} */
 
 /* {{{ php_oci_bind */
-typedef struct { 
+typedef struct {
 	OCIBind				*bind;					/* bind handle */
 	zval				val;					/* value */
 	dvoid				*descriptor;			/* used for binding of LOBS etc */
@@ -265,7 +265,7 @@ typedef struct {
 /* }}} */
 
 /* {{{ php_oci_out_column */
-typedef struct { 
+typedef struct {
 	php_oci_statement	*statement;				/* statement handle. used when fetching REFCURSORS */
 	php_oci_statement	*nested_statement;		/* statement handle. used when fetching REFCURSORS */
 	OCIDefine			*oci_define;			/* define handle */
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_001.phpt 7.2.11-3/ext/oci8/tests/array_bind_001.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_001.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_001.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,5 +1,5 @@
 --TEST--
-oci_bind_array_by_name() and invalid values 1 
+oci_bind_array_by_name() and invalid values 1
 --SKIPIF--
 <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
 --FILE--
@@ -16,15 +16,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_001_PKG AS 
-  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_001_PKG AS
+  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_001_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_001_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_001_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -58,7 +58,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_bind_array_by_name(): OCI-21560: argument 3 is null, invalid, or out of range in %s on line %d
 
 Warning: oci_execute(): ORA-%r(01008|57000)%r: %s in %s on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_002.phpt 7.2.11-3/ext/oci8/tests/array_bind_002.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_002.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_002.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -16,15 +16,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_002_PKG AS 
-  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_002_PKG AS
+  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_002_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_002_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_002_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -58,7 +58,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_bind_array_by_name(): Maximum array length must be greater than zero in %s on line %d
 
 Warning: oci_execute(): ORA-%r(01008|57000)%r: %s in %s on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_003.phpt 7.2.11-3/ext/oci8/tests/array_bind_003.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_003.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_003.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and invalid val
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_003_PKG AS 
-  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_003_PKG AS
+  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_003_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_003_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_003_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_execute(): ORA-01403: %s
 ORA-06512: at "%s.ARRAY_BIND_003_PKG", line %d
 ORA-06512: at line %d in %sarray_bind_003.php on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_004.phpt 7.2.11-3/ext/oci8/tests/array_bind_004.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_004.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_004.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and invalid val
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_004_PKG AS 
-  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_004_PKG AS
+  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_004_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_004_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_004_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_execute(): ORA-01403: %s
 ORA-06512: at "%s.ARRAY_BIND_004_PKG", line %d
 ORA-06512: at line %d in %sarray_bind_004.php on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_005.phpt 7.2.11-3/ext/oci8/tests/array_bind_005.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_005.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_005.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and invalid val
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_005_PKG AS 
-  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_005_PKG AS
+  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_005_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_005_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_005_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECT--
 array(5) {
   [0]=>
   string(0) ""
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_006.phpt 7.2.11-3/ext/oci8/tests/array_bind_006.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_006.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_006.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name(), SQLT_CHR and d
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_006_PKG AS 
-  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_006_PKG AS
+  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_006_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_006_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_006_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   string(4) "five"
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_007.phpt 7.2.11-3/ext/oci8/tests/array_bind_007.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_007.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_007.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -16,15 +16,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_007_PKG AS 
-  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_007_PKG AS
+  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_007_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_007_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_007_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -58,7 +58,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_bind_array_by_name(): Unknown or unsupported datatype given: -1 in %s on line %d
 
 Warning: oci_execute(): ORA-%r(01008|57000)%r: %s in %s on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_008.phpt 7.2.11-3/ext/oci8/tests/array_bind_008.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_008.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_008.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and invalid val
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_008_PKG AS 
-  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_008_PKG AS
+  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_008_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_008_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_008_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_execute(): ORA-06550: line %d, column %d:
 PLS-00418: %s
 ORA-06550: %s
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_009.phpt 7.2.11-3/ext/oci8/tests/array_bind_009.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_009.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_009.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -11,7 +11,7 @@ var_dump(oci_bind_array_by_name($c, ":c1
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_bind_array_by_name(): supplied resource is not a valid oci8 statement resource in %s on line %d
 bool(false)
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_010.phpt 7.2.11-3/ext/oci8/tests/array_bind_010.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_010.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_010.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -19,7 +19,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_bind_array_by_name(): ORA-01036: illegal variable name/number in %s on line %d
 array(5) {
   [0]=>
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_011.phpt 7.2.11-3/ext/oci8/tests/array_bind_011.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_011.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_011.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -16,15 +16,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_011_PKG AS 
-  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_011_PKG AS
+  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_011_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_011_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_011_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -58,7 +58,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_bind_array_by_name(): You must provide max length value for empty arrays in %s on line %d
 
 Warning: oci_execute(): ORA-%r(01008|57000)%r: %s in %s on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_012.phpt 7.2.11-3/ext/oci8/tests/array_bind_012.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_012.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_012.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -19,7 +19,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_bind_array_by_name(): Invalid max length value (-10) in %s on line %d
 array(0) {
 }
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_013.phpt 7.2.11-3/ext/oci8/tests/array_bind_013.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_013.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_013.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -22,7 +22,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_bind_array_by_name() expects at most 6 parameters, 7 given in %s on line %d
 NULL
 
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_014.phpt 7.2.11-3/ext/oci8/tests/array_bind_014.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_014.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_014.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and NUMBERs
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_014_PKG AS 
-  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_014_PKG AS
+  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_014_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_014_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_014_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -60,7 +60,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECT--
 array(5) {
   [0]=>
   int(5)
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_bdouble.phpt 7.2.11-3/ext/oci8/tests/array_bind_bdouble.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_bdouble.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_bdouble.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Unsupported type: oci_bind_array_by_name
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (!defined('SQLT_BDOUBLE')) die('skip SQLT_BDOUBLE type not available on older Oracle clients');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_bfloat.phpt 7.2.11-3/ext/oci8/tests/array_bind_bfloat.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_bfloat.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_bfloat.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Unsupported type: oci_bind_array_by_name
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (!defined('SQLT_BFLOAT')) die('skip SQLT_BFLOAT type not available on older Oracle clients');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_date1.phpt 7.2.11-3/ext/oci8/tests/array_bind_date1.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_date1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_date1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and SQLT_ODT
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_DATE1_PKG AS 
-  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_DATE1_PKG AS
+  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_DATE1_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_DATE1_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_DATE1_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   string(9) "05-NOV-05"
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_date.phpt 7.2.11-3/ext/oci8/tests/array_bind_date.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_date.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_date.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and SQLT_ODT
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_DATE_PKG AS 
-  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_DATE_PKG AS
+  TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_DATE_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_DATE_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_DATE_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   string(9) "05-NOV-05"
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_float1.phpt 7.2.11-3/ext/oci8/tests/array_bind_float1.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_float1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_float1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and SQLT_FLT
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_FLOAT1_PKG AS 
-  TYPE ARRTYPE IS TABLE OF FLOAT INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_FLOAT1_PKG AS
+  TYPE ARRTYPE IS TABLE OF FLOAT INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_FLOAT1_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_FLOAT1_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_FLOAT1_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   float(5.9999)
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_float.phpt 7.2.11-3/ext/oci8/tests/array_bind_float.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_float.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_float.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and SQLT_FLT
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_FLOAT_PKG AS 
-  TYPE ARRTYPE IS TABLE OF FLOAT INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_FLOAT_PKG AS
+  TYPE ARRTYPE IS TABLE OF FLOAT INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_FLOAT_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_FLOAT_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_FLOAT_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   float(5.9999)
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_int1.phpt 7.2.11-3/ext/oci8/tests/array_bind_int1.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_int1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_int1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and SQLT_INT
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_INT1_PKG AS 
-  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_INT1_PKG AS
+  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_INT1_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_INT1_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_INT1_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   int(5)
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_int.phpt 7.2.11-3/ext/oci8/tests/array_bind_int.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_int.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_int.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and SQLT_INT
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_INT_PKG AS 
-  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_INT_PKG AS
+  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_INT_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_INT_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_INT_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   int(5)
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_str1.phpt 7.2.11-3/ext/oci8/tests/array_bind_str1.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_str1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_str1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and SQLT_CHR
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_STR1_PKG AS 
-  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_STR1_PKG AS
+  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_STR1_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_STR1_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_STR1_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   string(4) "five"
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_str.phpt 7.2.11-3/ext/oci8/tests/array_bind_str.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_str.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_str.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_bind_array_by_name() and SQLT_CHR
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE ARRAY_BIND_STR_PKG AS 
-  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE ARRAY_BIND_STR_PKG AS
+  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END ARRAY_BIND_STR_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_STR_PKG AS 
+CREATE OR REPLACE PACKAGE BODY ARRAY_BIND_STR_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -61,7 +61,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 array(5) {
   [0]=>
   string(4) "five"
diff -pruN 7.2.9-1/ext/oci8/tests/array_bind_uin.phpt 7.2.11-3/ext/oci8/tests/array_bind_uin.phpt
--- 7.2.9-1/ext/oci8/tests/array_bind_uin.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/array_bind_uin.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Unsupported type: oci_bind_array_by_name
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/b47243_1.phpt 7.2.11-3/ext/oci8/tests/b47243_1.phpt
--- 7.2.9-1/ext/oci8/tests/b47243_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/b47243_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #47243 (Crash on exit with ZTS mode)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -21,5 +21,5 @@ oci_fetch_all($s, $r);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 ===DONE===
diff -pruN 7.2.9-1/ext/oci8/tests/b47243_2.phpt 7.2.11-3/ext/oci8/tests/b47243_2.phpt
--- 7.2.9-1/ext/oci8/tests/b47243_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/b47243_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #47243 (Crash on exit with ZTS mode)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -22,5 +22,5 @@ oci_free_statement($s);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 ===DONE===
diff -pruN 7.2.9-1/ext/oci8/tests/b47243_3.phpt 7.2.11-3/ext/oci8/tests/b47243_3.phpt
--- 7.2.9-1/ext/oci8/tests/b47243_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/b47243_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #47243 (Crash on exit with ZTS mode)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -23,5 +23,5 @@ oci_close($c);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 ===DONE===
diff -pruN 7.2.9-1/ext/oci8/tests/bind_boolean_1.phpt 7.2.11-3/ext/oci8/tests/bind_boolean_1.phpt
--- 7.2.9-1/ext/oci8/tests/bind_boolean_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_boolean_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,15 +1,15 @@
 --TEST--
 Basic PL/SQL "BOOLEAN" (SQLT_BOL) bind test
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 require(dirname(__FILE__).'/connect.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
 if (!(isset($matches[0]) && $matches[1] >= 12)) {
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -46,7 +46,7 @@ var_dump($b);
 
 echo "Test 3\n";
 
-$sql = 
+$sql =
     "begin
     if (:input < 10) then
         :output := true;
@@ -64,7 +64,7 @@ for ($input = 5; $input < 15; ++$input)
 
 echo "Test 4\n";
 
-$sql = 
+$sql =
 "begin
   if (mod(:userid,2) = 0) then
     :b := true;
@@ -82,7 +82,7 @@ for ($userid = 1; $userid <= 10; ++$user
 
 echo "Test 5\n";
 
-$sql = 
+$sql =
 "declare
   l boolean;
 begin
@@ -102,7 +102,7 @@ var_dump($b1, $b2);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 bool(true)
 bool(false)
diff -pruN 7.2.9-1/ext/oci8/tests/bind_char_1_11gR1.phpt 7.2.11-3/ext/oci8/tests/bind_char_1_11gR1.phpt
--- 7.2.9-1/ext/oci8/tests/bind_char_1_11gR1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_char_1_11gR1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -28,7 +28,7 @@ $stmtarray = array(
 	"insert into bind_char_tab values (2, NULL, 'abc')",
 	"insert into bind_char_tab values (3, NULL, 'abc       ')"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run Test
@@ -198,7 +198,7 @@ function do_e_q($s)
 $stmtarray = array(
 	"drop table bind_char_tab"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
diff -pruN 7.2.9-1/ext/oci8/tests/bind_char_1.phpt 7.2.11-3/ext/oci8/tests/bind_char_1.phpt
--- 7.2.9-1/ext/oci8/tests/bind_char_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_char_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -26,7 +26,7 @@ $stmtarray = array(
 	"insert into bind_char_tab values (2, NULL, 'abc')",
 	"insert into bind_char_tab values (3, NULL, 'abc       ')"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run Test
@@ -196,7 +196,7 @@ function do_e_q($s)
 $stmtarray = array(
 	"drop table bind_char_tab"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
diff -pruN 7.2.9-1/ext/oci8/tests/bind_char_2_11gR1.phpt 7.2.11-3/ext/oci8/tests/bind_char_2_11gR1.phpt
--- 7.2.9-1/ext/oci8/tests/bind_char_2_11gR1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_char_2_11gR1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -25,7 +25,7 @@ $stmtarray = array(
 	"create table bind_char_tab (id number, c1 date)",
 	"insert into bind_char_tab values (1, '2008-04-20')",
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run Test
@@ -85,7 +85,7 @@ function do_e_q($s)
 $stmtarray = array(
 	"drop table bind_char_tab"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
diff -pruN 7.2.9-1/ext/oci8/tests/bind_char_2.phpt 7.2.11-3/ext/oci8/tests/bind_char_2.phpt
--- 7.2.9-1/ext/oci8/tests/bind_char_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_char_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -25,7 +25,7 @@ $stmtarray = array(
 	"create table bind_char_tab (id number, c1 date)",
 	"insert into bind_char_tab values (1, '2008-04-20')",
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run Test
@@ -85,7 +85,7 @@ function do_e_q($s)
 $stmtarray = array(
 	"drop table bind_char_tab"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
diff -pruN 7.2.9-1/ext/oci8/tests/bind_char_3_11gR1.phpt 7.2.11-3/ext/oci8/tests/bind_char_3_11gR1.phpt
--- 7.2.9-1/ext/oci8/tests/bind_char_3_11gR1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_char_3_11gR1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -22,7 +22,7 @@ require(dirname(__FILE__).'/connect.inc'
 $stmtarray = array(
 	"create or replace function bind_char_3_fn(p1 char) return char as begin return p1; end;",
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run Test
@@ -243,7 +243,7 @@ oci8_test_sql_execute($c, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1.1 In Length: default.  In Type: default.  Out Length: default.          Out Type: default
   Executing:
     Oci_execute error ORA-6502
diff -pruN 7.2.9-1/ext/oci8/tests/bind_char_3.phpt 7.2.11-3/ext/oci8/tests/bind_char_3.phpt
--- 7.2.9-1/ext/oci8/tests/bind_char_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_char_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -243,7 +243,7 @@ oci8_test_sql_execute($c, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1.1 In Length: default.  In Type: default.  Out Length: default.          Out Type: default
   Executing:
     Oci_execute error ORA-6502
diff -pruN 7.2.9-1/ext/oci8/tests/bind_char_4_11gR1.phpt 7.2.11-3/ext/oci8/tests/bind_char_4_11gR1.phpt
--- 7.2.9-1/ext/oci8/tests/bind_char_4_11gR1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_char_4_11gR1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -24,7 +24,7 @@ require(dirname(__FILE__).'/connect.inc'
 $stmtarray = array(
 	"create or replace function bind_char_3_fn(p1 varchar2) return varchar2 as begin return p1; end;",
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run Test
@@ -245,7 +245,7 @@ oci8_test_sql_execute($c, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1.1 In Length: default.  In Type: default.  Out Length: default.          Out Type: default
   Executing:
     Oci_execute error ORA-6502
diff -pruN 7.2.9-1/ext/oci8/tests/bind_char_4.phpt 7.2.11-3/ext/oci8/tests/bind_char_4.phpt
--- 7.2.9-1/ext/oci8/tests/bind_char_4.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_char_4.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -24,7 +24,7 @@ require(dirname(__FILE__).'/connect.inc'
 $stmtarray = array(
 	"create or replace function bind_char_3_fn(p1 varchar2) return varchar2 as begin return p1; end;",
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run Test
@@ -245,7 +245,7 @@ oci8_test_sql_execute($c, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1.1 In Length: default.  In Type: default.  Out Length: default.          Out Type: default
   Executing:
     Oci_execute error ORA-6502
diff -pruN 7.2.9-1/ext/oci8/tests/bind_empty.phpt 7.2.11-3/ext/oci8/tests/bind_empty.phpt
--- 7.2.9-1/ext/oci8/tests/bind_empty.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_empty.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -91,7 +91,7 @@ $statement = oci_parse($c, $drop);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 bool(true)
 Test 2
diff -pruN 7.2.9-1/ext/oci8/tests/bind_long.phpt 7.2.11-3/ext/oci8/tests/bind_long.phpt
--- 7.2.9-1/ext/oci8/tests/bind_long.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_long.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ bind LONG field
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bind_long_raw.phpt 7.2.11-3/ext/oci8/tests/bind_long_raw.phpt
--- 7.2.9-1/ext/oci8/tests/bind_long_raw.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_long_raw.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ bind LONG RAW field
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bind_misccoltypes_errs.phpt 7.2.11-3/ext/oci8/tests/bind_misccoltypes_errs.phpt
--- 7.2.9-1/ext/oci8/tests/bind_misccoltypes_errs.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_misccoltypes_errs.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -45,7 +45,7 @@ function check_col($c, $colname, $id)
 
 // Tests
 
-echo "\nTest 1 insert numbers \n";
+echo "\nTest 1 insert numbers\n";
 
 $n1 = -23253245.3432467;
 
@@ -55,7 +55,7 @@ oci_execute($s);
 
 check_col($c, 'number_t6', 57);
 
-echo "\nTest 2 insert numbers \n";
+echo "\nTest 2 insert numbers\n";
 
 $n1 = "Hello";
 
@@ -119,7 +119,7 @@ oci_close($c);
 ===DONE===
 <?php exit(0); ?>
 --EXPECTF--
-Test 1 insert numbers 
+Test 1 insert numbers
 
 Warning: oci_execute(): ORA-01438: %s in %sbind_misccoltypes_errs.php on line %d
 array(1) {
@@ -128,7 +128,7 @@ array(1) {
   }
 }
 
-Test 2 insert numbers 
+Test 2 insert numbers
 
 Warning: oci_execute(): ORA-01722: %s in %sbind_misccoltypes_errs.php on line %d
 array(1) {
diff -pruN 7.2.9-1/ext/oci8/tests/bind_misccoltypes.phpt 7.2.11-3/ext/oci8/tests/bind_misccoltypes.phpt
--- 7.2.9-1/ext/oci8/tests/bind_misccoltypes.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_misccoltypes.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bind miscellaneous column types using de
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -270,7 +270,7 @@ oci_close($c);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 TEST86 insert all ORATYPE values
 
 TEST87 SELECT all values using DEFINEs
diff -pruN 7.2.9-1/ext/oci8/tests/bind_query.phpt 7.2.11-3/ext/oci8/tests/bind_query.phpt
--- 7.2.9-1/ext/oci8/tests/bind_query.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_query.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -64,7 +64,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 array(1) {
   [0]=>
diff -pruN 7.2.9-1/ext/oci8/tests/bind_raw_2.phpt 7.2.11-3/ext/oci8/tests/bind_raw_2.phpt
--- 7.2.9-1/ext/oci8/tests/bind_raw_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_raw_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ bind RAW field with OCI_B_BIN
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bind_raw.phpt 7.2.11-3/ext/oci8/tests/bind_raw.phpt
--- 7.2.9-1/ext/oci8/tests/bind_raw.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_raw.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ bind RAW field
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bind_sqltafc.phpt 7.2.11-3/ext/oci8/tests/bind_sqltafc.phpt
--- 7.2.9-1/ext/oci8/tests/bind_sqltafc.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_sqltafc.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -89,7 +89,7 @@ oci_close($c);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 0 - base table creation without binds
 array(5) {
   ["ID"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/bind_sqltchr_1.phpt 7.2.11-3/ext/oci8/tests/bind_sqltchr_1.phpt
--- 7.2.9-1/ext/oci8/tests/bind_sqltchr_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_sqltchr_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -135,7 +135,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 TEST241 bind SQLT_CHR
 array(1) {
   ["VARCHAR2_T10"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/bind_sqltchr_2.phpt 7.2.11-3/ext/oci8/tests/bind_sqltchr_2.phpt
--- 7.2.9-1/ext/oci8/tests/bind_sqltchr_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_sqltchr_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -14,7 +14,7 @@ $stmtarray = array(
     as
     begin
       msg_out := upper(msg_in);
-    end;"    
+    end;"
 
 );
 
@@ -23,7 +23,7 @@ oci8_test_sql_execute($c, $stmtarray);
 // Run Test
 
 echo "Test 1 - PL/SQL IN and OUT variables\n";
- 
+
 $stmt = oci_parse($c, "BEGIN bind_sqltchr_proc(:a, :b); END;");
 $msg_in = "Cat got your keyboard?";
 oci_bind_by_name($stmt, ":a", $msg_in, -1, SQLT_CHR);
@@ -43,7 +43,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1 - PL/SQL IN and OUT variables
 string(22) "Cat got your keyboard?"
 string(22) "CAT GOT YOUR KEYBOARD?"
diff -pruN 7.2.9-1/ext/oci8/tests/bind_sqltint.phpt 7.2.11-3/ext/oci8/tests/bind_sqltint.phpt
--- 7.2.9-1/ext/oci8/tests/bind_sqltint.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_sqltint.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -216,7 +216,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 TEST141 wrong bind type SQLT_INT
 array(1) {
   ["VARCHAR2_T10"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/bind_sqltnum_11g.phpt 7.2.11-3/ext/oci8/tests/bind_sqltnum_11g.phpt
--- 7.2.9-1/ext/oci8/tests/bind_sqltnum_11g.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_sqltnum_11g.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bind with SQLT_NUM
 <?php
 if (!extension_loaded('oci8')) die("skip no oci8 extension");
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] <= 11)) { 
+if (!(isset($matches[0]) && $matches[0] <= 11)) {
     die("skip works only with Oracle 11 or earlier version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/bind_sqltnum.phpt 7.2.11-3/ext/oci8/tests/bind_sqltnum.phpt
--- 7.2.9-1/ext/oci8/tests/bind_sqltnum.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_sqltnum.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bind with SQLT_NUM
 <?php
 if (!extension_loaded('oci8')) die("skip no oci8 extension");
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/bind_unsupported_1.phpt 7.2.11-3/ext/oci8/tests/bind_unsupported_1.phpt
--- 7.2.9-1/ext/oci8/tests/bind_unsupported_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_unsupported_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -27,7 +27,7 @@ foreach ($types as $t => $v) {
 
     $s = oci_parse($c, "select * from dual where dummy = :c1");
     $c1 = "Doug";
-    oci_bind_by_name($s, ":c1", $c1, -1, $v);    
+    oci_bind_by_name($s, ":c1", $c1, -1, $v);
 }
 
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/bind_unsupported_2.phpt 7.2.11-3/ext/oci8/tests/bind_unsupported_2.phpt
--- 7.2.9-1/ext/oci8/tests/bind_unsupported_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_unsupported_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Bind with various unsupported 10g+ bind types
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 ?>
 --FILE--
 <?php
@@ -20,7 +20,7 @@ foreach ($types as $t => $v) {
 
     $s = oci_parse($c, "select * from dual where dummy = :c1");
     $c1 = "Doug";
-    oci_bind_by_name($s, ":c1", $c1, -1, $v);    
+    oci_bind_by_name($s, ":c1", $c1, -1, $v);
 }
 
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/bind_unsupported_3.phpt 7.2.11-3/ext/oci8/tests/bind_unsupported_3.phpt
--- 7.2.9-1/ext/oci8/tests/bind_unsupported_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bind_unsupported_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,10 +1,10 @@
 --TEST--
-Bind with various bind types not supported by TimesTen 
+Bind with various bind types not supported by TimesTen
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => false, 'timesten' => true);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -23,7 +23,7 @@ foreach ($types as $t => $v) {
 
     $s = oci_parse($c, "select * from dual where dummy = :c1");
     $c1 = "Doug";
-    oci_bind_by_name($s, ":c1", $c1, -1, $v);    
+    oci_bind_by_name($s, ":c1", $c1, -1, $v);
 }
 
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/bug26133.phpt 7.2.11-3/ext/oci8/tests/bug26133.phpt
--- 7.2.9-1/ext/oci8/tests/bug26133.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug26133.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -36,7 +36,7 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-                         
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/bug27303_1_11gR1.phpt 7.2.11-3/ext/oci8/tests/bug27303_1_11gR1.phpt
--- 7.2.9-1/ext/oci8/tests/bug27303_1_11gR1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug27303_1_11gR1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -51,7 +51,7 @@ oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 string(1) "1"
 string(1) "2"
 string(1) "3"
diff -pruN 7.2.9-1/ext/oci8/tests/bug27303_1.phpt 7.2.11-3/ext/oci8/tests/bug27303_1.phpt
--- 7.2.9-1/ext/oci8/tests/bug27303_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug27303_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -16,7 +16,7 @@ NLS_LANG=
 <?php
 
 require(dirname(__FILE__).'/connect.inc');
-	
+
 $stmtarray = array(
     "drop sequence myseq",
     "drop table mytab",
@@ -53,7 +53,7 @@ oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 string(1) "1"
 string(1) "2"
 string(1) "3"
diff -pruN 7.2.9-1/ext/oci8/tests/bug27303_2_11gR1.phpt 7.2.11-3/ext/oci8/tests/bug27303_2_11gR1.phpt
--- 7.2.9-1/ext/oci8/tests/bug27303_2_11gR1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug27303_2_11gR1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -16,7 +16,7 @@ NLS_LANG=
 <?php
 
 require dirname(__FILE__).'/connect.inc';
-	
+
 $stmtarray = array(
     "drop sequence myseq",
     "drop table mytab",
@@ -55,7 +55,7 @@ oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 string(1) "1"
 string(1) "2"
 string(1) "3"
diff -pruN 7.2.9-1/ext/oci8/tests/bug27303_2.phpt 7.2.11-3/ext/oci8/tests/bug27303_2.phpt
--- 7.2.9-1/ext/oci8/tests/bug27303_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug27303_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -16,7 +16,7 @@ NLS_LANG=
 <?php
 
 require dirname(__FILE__).'/connect.inc';
-	
+
 $stmtarray = array(
     "drop sequence myseq",
     "drop table mytab",
@@ -55,7 +55,7 @@ oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 string(1) "1"
 string(1) "2"
 string(1) "3"
diff -pruN 7.2.9-1/ext/oci8/tests/bug27303_3.phpt 7.2.11-3/ext/oci8/tests/bug27303_3.phpt
--- 7.2.9-1/ext/oci8/tests/bug27303_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug27303_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -6,7 +6,7 @@ Bug #27303 (OCIBindByName binds numeric
 <?php
 
 require dirname(__FILE__).'/connect.inc';
-	
+
 $create_st = array();
 $create_st[] = "drop sequence myseq";
 $create_st[] = "drop table mytab";
@@ -49,7 +49,7 @@ foreach ($create_st as $statement) {
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECT--
 int(1)
 int(2)
 int(3)
diff -pruN 7.2.9-1/ext/oci8/tests/bug27303_4_11gR1.phpt 7.2.11-3/ext/oci8/tests/bug27303_4_11gR1.phpt
--- 7.2.9-1/ext/oci8/tests/bug27303_4_11gR1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug27303_4_11gR1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -14,7 +14,7 @@ if (!(isset($matches[0]) && $matches[1]
 <?php
 
 require dirname(__FILE__).'/connect.inc';
-	
+
 $create_st = array();
 $create_st[] = "drop sequence myseq";
 $create_st[] = "drop table mytab";
@@ -49,7 +49,7 @@ oci8_test_sql_execute($c, $drop_st);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 string(1) "1"
 string(1) "2"
 string(1) "3"
diff -pruN 7.2.9-1/ext/oci8/tests/bug27303_4.phpt 7.2.11-3/ext/oci8/tests/bug27303_4.phpt
--- 7.2.9-1/ext/oci8/tests/bug27303_4.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug27303_4.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -16,7 +16,7 @@ NLS_LANG=
 <?php
 
 require dirname(__FILE__).'/connect.inc';
-	
+
 $create_st = array();
 $create_st[] = "drop sequence myseq";
 $create_st[] = "drop table mytab";
@@ -51,7 +51,7 @@ oci8_test_sql_execute($c, $drop_st);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 string(1) "1"
 string(1) "2"
 string(1) "3"
diff -pruN 7.2.9-1/ext/oci8/tests/bug32325.phpt 7.2.11-3/ext/oci8/tests/bug32325.phpt
--- 7.2.9-1/ext/oci8/tests/bug32325.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug32325.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,12 +4,12 @@ Bug #32325 (Cannot retrieve collection u
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
 require(dirname(__FILE__).'/connect.inc');
-		
+
 // Initialize
 
 $stmtarray = array(
@@ -19,7 +19,7 @@ $stmtarray = array(
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run test
-	
+
 $collection = oci_new_collection($c, "BUG32325_T");
 
 $sql = "begin
@@ -45,7 +45,7 @@ oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 int(4)
 float(2)
 float(3)
diff -pruN 7.2.9-1/ext/oci8/tests/bug35973.phpt 7.2.11-3/ext/oci8/tests/bug35973.phpt
--- 7.2.9-1/ext/oci8/tests/bug35973.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug35973.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #35973 (Error ORA-24806 occurs when
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -33,7 +33,7 @@ $s1 = oci_parse($c, "drop table test_ncl
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 array(1) {
   ["NC"]=>
   object(OCI-Lob)#%d (1) {
diff -pruN 7.2.9-1/ext/oci8/tests/bug36010.phpt 7.2.11-3/ext/oci8/tests/bug36010.phpt
--- 7.2.9-1/ext/oci8/tests/bug36010.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug36010.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ Bug #36010 (Crash when executing SQL sta
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 
 function f($conn)
diff -pruN 7.2.9-1/ext/oci8/tests/bug36403.phpt 7.2.11-3/ext/oci8/tests/bug36403.phpt
--- 7.2.9-1/ext/oci8/tests/bug36403.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug36403.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -2,7 +2,7 @@
 Bug #36403 (oci_execute no longer supports OCI_DESCRIBE_ONLY)
 --SKIPIF--
 <?php
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 ?>
 --FILE--
 <?php
diff -pruN 7.2.9-1/ext/oci8/tests/bug37220.phpt 7.2.11-3/ext/oci8/tests/bug37220.phpt
--- 7.2.9-1/ext/oci8/tests/bug37220.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug37220.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #37220 (LOB Type mismatch when using
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -23,21 +23,21 @@ oci8_test_sql_execute($c, $stmtarray);
 // 'THETAG' to 'MYTAG' (mycolumn is an XMLTYPE datatype and
 // bug37220_tab a normal Oracle table)
 
-$query = "UPDATE  bug37220_tab 
-  		  SET     bug37220_tab.mycolumn = updateXML(bug37220_tab.mycolumn,'/THETAG',xmltype.createXML(:data)) 
-		  WHERE   existsNode(bug37220_tab.mycolumn,'/THETAG[@myID=\"1234\"]') = 1"; 
-$stmt = oci_parse ($c, $query); 
-$clob = oci_new_descriptor($c, OCI_D_LOB); 
-oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB); 
-$clob->writetemporary("<MYTAG/>", OCI_TEMP_CLOB); 
-$success = oci_execute($stmt, OCI_COMMIT_ON_SUCCESS); 
-oci_free_statement($stmt); 	
-$clob->close(); 
+$query = "UPDATE  bug37220_tab
+  		  SET     bug37220_tab.mycolumn = updateXML(bug37220_tab.mycolumn,'/THETAG',xmltype.createXML(:data))
+		  WHERE   existsNode(bug37220_tab.mycolumn,'/THETAG[@myID=\"1234\"]') = 1";
+$stmt = oci_parse ($c, $query);
+$clob = oci_new_descriptor($c, OCI_D_LOB);
+oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
+$clob->writetemporary("<MYTAG/>", OCI_TEMP_CLOB);
+$success = oci_execute($stmt, OCI_COMMIT_ON_SUCCESS);
+oci_free_statement($stmt); 
+$clob->close();
 
 // Query back the change
 
 $query = "select * from bug37220_tab";
-$stmt = oci_parse ($c, $query); 
+$stmt = oci_parse ($c, $query);
 
 oci_execute($stmt);
 
diff -pruN 7.2.9-1/ext/oci8/tests/bug37581.phpt 7.2.11-3/ext/oci8/tests/bug37581.phpt
--- 7.2.9-1/ext/oci8/tests/bug37581.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug37581.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #37581 (oci_bind_array_by_name clobb
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -44,7 +44,7 @@ var_dump($strings);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECT--
 array(5) {
   [0]=>
   string(1) "A"
diff -pruN 7.2.9-1/ext/oci8/tests/bug38161.phpt 7.2.11-3/ext/oci8/tests/bug38161.phpt
--- 7.2.9-1/ext/oci8/tests/bug38161.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug38161.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -24,7 +24,7 @@ var_dump($bv);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECT--
 NULL
 int(0)
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/bug38173.phpt 7.2.11-3/ext/oci8/tests/bug38173.phpt
--- 7.2.9-1/ext/oci8/tests/bug38173.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug38173.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #38173 (Freeing nested cursors cause
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bug40078.phpt 7.2.11-3/ext/oci8/tests/bug40078.phpt
--- 7.2.9-1/ext/oci8/tests/bug40078.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug40078.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #40078 (ORA-01405 when fetching NULL
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -42,7 +42,7 @@ var_dump($array);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECT--
 array(5) {
   [0]=>
   string(3) "one"
diff -pruN 7.2.9-1/ext/oci8/tests/bug40415.phpt 7.2.11-3/ext/oci8/tests/bug40415.phpt
--- 7.2.9-1/ext/oci8/tests/bug40415.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug40415.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,9 +4,9 @@ Bug #40415 (Using oci_fetchall with nest
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
-<?php 
+<?php
 
 require dirname(__FILE__)."/connect.inc";
 
@@ -40,13 +40,13 @@ for($i=1; $i < 4; $i++) {
 }
 
 
-function do_assoc($c) 
+function do_assoc($c)
 {
     $query = "SELECT t1.*, CURSOR( SELECT * FROM t2 ) AS CURSOR FROM t1";
 
     $stmt = oci_parse($c, $query);
     oci_execute($stmt);
-    
+
     while ($row = oci_fetch_assoc($stmt)) {
         print "Got row \"".$row['ID1']."\". Now getting nested cursor:\n";
         var_dump(oci_execute($row['CURSOR']));
@@ -56,15 +56,15 @@ function do_assoc($c)
     }
 }
 
-function do_all($c) 
+function do_all($c)
 {
     $query = "SELECT t1.*, CURSOR( SELECT * FROM t2 ) AS CURSOR FROM t1";
 
     $stmt = oci_parse($c, $query);
     oci_execute($stmt);
-    
+
     $rc1 = oci_fetch_all($stmt, $res);
-    
+
     echo "Rows returned $rc1\n";
 
     var_dump($res);
@@ -86,7 +86,7 @@ echo "\nTest 2: fetchall of nested curso
 do_all($c);
 
 
-// Cleanup 
+// Cleanup
 $s1 = oci_parse($c, $drop_1);
 $s2 = oci_parse($c, $drop_2);
 @oci_execute($s1);
diff -pruN 7.2.9-1/ext/oci8/tests/bug41069.phpt 7.2.11-3/ext/oci8/tests/bug41069.phpt
--- 7.2.9-1/ext/oci8/tests/bug41069.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug41069.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Bug #41069 (Oracle crash with certain data over a DB-link when prefetch memory limit used - Oracle bug 6039623)
 --SKIPIF--
-<?php 
+<?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (empty($dbase)) die ("skip requires network connection alias for DB link loopback");
@@ -51,7 +51,7 @@ $stmtarray = array(
 	"insert into bug41069_tab (c1, c2, c3, c4, c5, c6, c7, c9, c10, c12, c15)	values
 	(113, 'aaaaaaa', 'bbbbbbbbbb', 'cccccc', 'e', 'f', 'dddd', '12/04/2006', '12/04/2006', 2224, 'zzzzzzz')"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 
diff -pruN 7.2.9-1/ext/oci8/tests/bug42134.phpt 7.2.11-3/ext/oci8/tests/bug42134.phpt
--- 7.2.9-1/ext/oci8/tests/bug42134.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug42134.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #42134 (Collection error for invalid
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bug42173.phpt 7.2.11-3/ext/oci8/tests/bug42173.phpt
--- 7.2.9-1/ext/oci8/tests/bug42173.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug42173.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #42173 (TIMESTAMP and INTERVAL query
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bug42496_1.phpt 7.2.11-3/ext/oci8/tests/bug42496_1.phpt
--- 7.2.9-1/ext/oci8/tests/bug42496_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug42496_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Bug #42496 (LOB fetch leaks cursors, eve
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
-?> 
+?>
 --FILE--
 <?php
 
@@ -52,6 +52,6 @@ $stmtarray = array(
 oci8_test_sql_execute($c, $stmtarray);
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/bug42496_2.phpt 7.2.11-3/ext/oci8/tests/bug42496_2.phpt
--- 7.2.9-1/ext/oci8/tests/bug42496_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug42496_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Bug #42496 (LOB fetch leaks cursors, eve
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
-?> 
+?>
 --FILE--
 <?php
 
@@ -50,6 +50,6 @@ $stmtarray = array(
 oci8_test_sql_execute($c, $stmtarray);
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 2
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/bug42841.phpt 7.2.11-3/ext/oci8/tests/bug42841.phpt
--- 7.2.9-1/ext/oci8/tests/bug42841.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug42841.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #42841 (REF CURSOR and oci_new_curso
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --INI--
 oci8.statement_cache_size=20
 --FILE--
@@ -24,10 +24,10 @@ $stmtarray = array(
    end bug42841_proc;",
 
     "create or replace package bug43449_pkg is
-        type cursortype is ref Cursor;  
+        type cursortype is ref Cursor;
         function testcursor return cursortype;
     end bug43449_pkg;",
-    
+
     "create or replace package body bug43449_pkg is
     function testcursor return cursortype is
     retCursor cursorType;
@@ -50,32 +50,32 @@ function do_bug42841($c)
     $stmt = oci_parse($c, $sql);
     $cursor = oci_new_cursor($c);
     oci_bind_by_name($stmt, ":cursor", $cursor, -1, OCI_B_CURSOR);
-    
+
     oci_execute($stmt, OCI_DEFAULT);
     oci_execute($cursor);
-    
+
     while($row = oci_fetch_array($cursor, OCI_ASSOC + OCI_RETURN_LOBS)) {
         $data1[] = $row;
     }
-    
+
     oci_free_statement($stmt);
     oci_free_statement($cursor);
     var_dump($data1);
-    
+
     echo "Second attempt\n";
-    
+
     $sql = "BEGIN bug42841_proc(:cursor); END;";
     $stmt = oci_parse($c, $sql);
     $cursor = oci_new_cursor($c);
     oci_bind_by_name($stmt, ":cursor", $cursor, -1, OCI_B_CURSOR);
-    
+
     oci_execute($stmt, OCI_DEFAULT);
     oci_execute($cursor);
-    
+
     while($row = oci_fetch_array($cursor, OCI_ASSOC + OCI_RETURN_LOBS)) {
         $data2[] = $row;
     }
-    
+
     oci_free_statement($stmt);
     oci_free_statement($cursor);
     var_dump($data2);
@@ -90,19 +90,19 @@ function do_bug43449($c)
 }
 
 function bug43449_getCur($c)
-{       
+{
     $cur = oci_new_cursor($c);
     $stmt = oci_parse($c, 'begin :cur := bug43449_pkg.testcursor; end;');
     oci_bind_by_name($stmt, ':cur', $cur, -1, OCI_B_CURSOR);
     oci_execute($stmt, OCI_DEFAULT);
     oci_execute($cur, OCI_DEFAULT);
-    
+
     $ret = array();
-    
+
     while (ocifetchinto($cur, $row, OCI_ASSOC)) {
         $ret[] = $row;
     }
-    
+
     oci_free_statement($cur);
     oci_free_statement($stmt);
     return $ret;
diff -pruN 7.2.9-1/ext/oci8/tests/bug43492_2.phpt 7.2.11-3/ext/oci8/tests/bug43492_2.phpt
--- 7.2.9-1/ext/oci8/tests/bug43492_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug43492_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #43492 (Nested cursor leaks after re
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bug43492.phpt 7.2.11-3/ext/oci8/tests/bug43492.phpt
--- 7.2.9-1/ext/oci8/tests/bug43492.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug43492.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #43492 (Nested cursor leaks)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bug43497.phpt 7.2.11-3/ext/oci8/tests/bug43497.phpt
--- 7.2.9-1/ext/oci8/tests/bug43497.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug43497.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Bug #43497 (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory)
 --SKIPIF--
-<?php 
+<?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
@@ -102,27 +102,27 @@ function dropxmltab($c)  // delete table
 function fillxmltab($c)
 {
 	for ($id = 1; $id <= 100; $id++) {
-		
-		// create an XML element string with random data		
+
+		// create an XML element string with random data
 		$s = "<data>";
 		for ($j = 0; $j < 128; $j++) {
-			$s .= rand();		
+			$s .= rand();
 		}
-		$s .= "</data>\n";		
+		$s .= "</data>\n";
 		for ($j = 0; $j < 4; $j++) {
 			$s .= $s;
-		}		
+		}
 		$data = "<?xml version=\"1.0\"?><records>" . $s . "</records>";
-		
+
 		// insert XML data into database
-		
+
 		$stmt = oci_parse($c, "insert into bug43497_tab(id, xml) values (:id, sys.xmltype.createxml(:xml))");
 		oci_bind_by_name($stmt, ":id", $id);
 		$clob = oci_new_descriptor($c, OCI_D_LOB);
 		oci_bind_by_name($stmt, ":xml", $clob, -1, OCI_B_CLOB);
 		$clob->writetemporary($data);
 		oci_execute($stmt);
-		
+
 		$clob->close();
 		$clob->free();
 	}
diff -pruN 7.2.9-1/ext/oci8/tests/bug44008.phpt 7.2.11-3/ext/oci8/tests/bug44008.phpt
--- 7.2.9-1/ext/oci8/tests/bug44008.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug44008.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #44008 (Incorrect usage of OCI-Lob->
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/bug44113.phpt 7.2.11-3/ext/oci8/tests/bug44113.phpt
--- 7.2.9-1/ext/oci8/tests/bug44113.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug44113.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Bug #44113 (New collection creation can fail with OCI-22303)
 --SKIPIF--
-<?php 
+<?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
diff -pruN 7.2.9-1/ext/oci8/tests/bug44206.phpt 7.2.11-3/ext/oci8/tests/bug44206.phpt
--- 7.2.9-1/ext/oci8/tests/bug44206.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug44206.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #44206 (Test if selecting ref cursor
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -15,7 +15,7 @@ require dirname(__FILE__).'/connect.inc'
 for ($x = 0; $x < 400; $x++)
 {
 	$stmt = "select cursor (select $x from dual) a,
-		 cursor (select $x from dual) b 
+		 cursor (select $x from dual) b
 		 from dual";
 	$s = oci_parse($c, $stmt);
 	$r = oci_execute($s);
diff -pruN 7.2.9-1/ext/oci8/tests/bug46994.phpt 7.2.11-3/ext/oci8/tests/bug46994.phpt
--- 7.2.9-1/ext/oci8/tests/bug46994.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug46994.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #46994 (CLOB size does not update wh
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -71,7 +71,7 @@ oci_close($c);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 string(26) "This should be the output."
 Test 2
diff -pruN 7.2.9-1/ext/oci8/tests/bug47189.phpt 7.2.11-3/ext/oci8/tests/bug47189.phpt
--- 7.2.9-1/ext/oci8/tests/bug47189.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug47189.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,10 +1,10 @@
 --TEST--
-Bug #47189 (Multiple oci_fetch_all calls) 
+Bug #47189 (Multiple oci_fetch_all calls)
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs: different error handling for this undefined behavior
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -17,7 +17,7 @@ oci_execute($s);
 oci_fetch_all($s, $rs, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
 var_dump($rs);
 oci_fetch_all($s, $rs1, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
-var_dump($rs1); 
+var_dump($rs1);
 
 echo "Test 2\n";
 
@@ -26,7 +26,7 @@ oci_execute($s);
 oci_fetch_all($s, $rs, 0, 1, OCI_FETCHSTATEMENT_BY_ROW);
 var_dump($rs);
 oci_fetch_all($s, $rs1, 0, 1, OCI_FETCHSTATEMENT_BY_ROW);
-var_dump($rs1); 
+var_dump($rs1);
 
 ?>
 ===DONE===
diff -pruN 7.2.9-1/ext/oci8/tests/bug47281.phpt 7.2.11-3/ext/oci8/tests/bug47281.phpt
--- 7.2.9-1/ext/oci8/tests/bug47281.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug47281.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -12,7 +12,7 @@ if (!isset($matches[0]) ||
      )) {
     die("skip test works only with Oracle 11.2.0.2 or earlier Oracle client libraries");
 }
-?> 
+?>
 --ENV--
 NLS_LANG=.AL32UTF8
 --FILE--
@@ -25,7 +25,7 @@ require(dirname(__FILE__).'/connect.inc'
 $stmtarray = array(
     "create or replace procedure bug47281_sp as
     begin
-    raise_application_error(-20000, 
+    raise_application_error(-20000,
         'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhIjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjKlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllM');
     end;"
 );
@@ -59,7 +59,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 ORA-20000: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccDeeeeeeeeeeee
 Test 2
diff -pruN 7.2.9-1/ext/oci8/tests/bug47281_tt.phpt 7.2.11-3/ext/oci8/tests/bug47281_tt.phpt
--- 7.2.9-1/ext/oci8/tests/bug47281_tt.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug47281_tt.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -51,7 +51,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 ORA-57000: TT8507: ORA-20000: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 Test 2
diff -pruN 7.2.9-1/ext/oci8/tests/bug51253.phpt 7.2.11-3/ext/oci8/tests/bug51253.phpt
--- 7.2.9-1/ext/oci8/tests/bug51253.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug51253.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #51253 (oci_bind_array_by_name() arr
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -19,15 +19,15 @@ $statement = oci_parse($c, $create);
 oci_execute($statement);
 
 $create_pkg = "
-CREATE OR REPLACE PACKAGE BUG51253_PKG AS 
-  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; 
-  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+CREATE OR REPLACE PACKAGE BUG51253_PKG AS
+  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE);
 END BUG51253_PKG;";
 $statement = oci_parse($c, $create_pkg);
 oci_execute($statement);
 
 $create_pkg_body = "
-CREATE OR REPLACE PACKAGE BODY BUG51253_PKG AS 
+CREATE OR REPLACE PACKAGE BODY BUG51253_PKG AS
   CURSOR CUR IS SELECT name FROM bind_test;
   PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
     BEGIN
@@ -89,7 +89,7 @@ $statement = oci_parse($c, "DROP TABLE B
 
 echo "Done\n";
 ?>
---EXPECT--	
+--EXPECT--
 Test 1
 array(5) {
   [0]=>
diff -pruN 7.2.9-1/ext/oci8/tests/bug51291_1.phpt 7.2.11-3/ext/oci8/tests/bug51291_1.phpt
--- 7.2.9-1/ext/oci8/tests/bug51291_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug51291_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -29,7 +29,7 @@ echo "\nTest 3 - Execute\n";
 
 $s = @oci_parse($c, 'select doesnotexist from dual');
 $r = @oci_execute($s, OCI_DEFAULT);
-if (!$r) { 
+if (!$r) {
     var_dump(oci_error($s));
     echo "2nd call\n";
     var_dump(oci_error($s));
@@ -39,7 +39,7 @@ echo "\nTest 4 - Execute - consecutive o
 
 $s = @oci_parse($c, 'select doesnotexist from dual');
 $r = @oci_execute($s, OCI_DEFAULT);
-if (!$r) { 
+if (!$r) {
     var_dump(oci_error(), oci_error($c), oci_error($s));
     echo "2nd call\n";
     var_dump(oci_error(), oci_error($c), oci_error($s));
@@ -50,7 +50,7 @@ echo "\nTest 5 - Execute - after oci_rol
 
 $s = @oci_parse($c, 'select doesnotexist from dual');
 $r = @oci_execute($s, OCI_DEFAULT);
-if (!$r) { 
+if (!$r) {
     var_dump(oci_error(), oci_error($c), oci_error($s));
     $r = oci_rollback($c);
     echo "Rollback status is ";
@@ -68,7 +68,7 @@ echo "\nTest 6 - Execute - after success
 
 $s = @oci_parse($c, 'select doesnotexist from dual');
 $r = @oci_execute($s, OCI_DEFAULT);
-if (!$r) { 
+if (!$r) {
     var_dump(oci_error(), oci_error($c), oci_error($s));
     $s2 = oci_parse($c, 'select 1 from dual');
     $r = oci_execute($s2, OCI_DEFAULT);
@@ -87,7 +87,7 @@ echo "\nTest 7 - Execute - after success
 
 $s = @oci_parse($c, 'select doesnotexist from dual');
 $r = @oci_execute($s, OCI_DEFAULT);
-if (!$r) { 
+if (!$r) {
     var_dump(oci_error(), oci_error($c), oci_error($s));
     $s = oci_parse($c, 'select 1 from dual');
     $r = oci_execute($s, OCI_DEFAULT);
@@ -106,7 +106,7 @@ echo "\nTest 8 - Execute - after unsucce
 
 $s = @oci_parse($c, 'select doesnotexist from dual');
 $r = @oci_execute($s, OCI_DEFAULT);
-if (!$r) { 
+if (!$r) {
     var_dump(oci_error(), oci_error($c), oci_error($s));
     $s2 = oci_parse($c, 'select reallynothere from dual');
     $r = oci_execute($s2, OCI_DEFAULT);
@@ -124,7 +124,7 @@ echo "\nTest 9 - Execute - after unsucce
 
 $s = @oci_parse($c, 'select doesnotexist from dual');
 $r = @oci_execute($s, OCI_DEFAULT);
-if (!$r) { 
+if (!$r) {
     var_dump(oci_error(), oci_error($c), oci_error($s));
     $s = oci_parse($c, 'select reallynothere from dual');
     $r = oci_execute($s, OCI_DEFAULT);
@@ -167,7 +167,7 @@ array(4) {
 
 Test 2 - Parse
 
-Warning: oci_error() expects parameter 1 to be resource, boolean given in %sbug51291_1.php on line %d
+Warning: oci_error() expects parameter 1 to be resource, bool%sgiven in %sbug51291_1.php on line %d
 bool(false)
 array(4) {
   ["code"]=>
@@ -182,7 +182,7 @@ array(4) {
 NULL
 2nd call
 
-Warning: oci_error() expects parameter 1 to be resource, boolean given in %sbug51291_1.php on line %d
+Warning: oci_error() expects parameter 1 to be resource, bool%sgiven in %sbug51291_1.php on line %d
 bool(false)
 array(4) {
   ["code"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/bug51291_2.phpt 7.2.11-3/ext/oci8/tests/bug51291_2.phpt
--- 7.2.9-1/ext/oci8/tests/bug51291_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug51291_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #51291 (oci_error() doesn't report l
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs: different error messages from TimesTen
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -16,7 +16,7 @@ $s = oci_parse($c, "declare e exception;
 $bv = 1;
 oci_bind_by_name($s, ":bv", $bv);
 $r = @oci_execute($s, OCI_DEFAULT);
-if (!$r) { 
+if (!$r) {
     var_dump(oci_error(), oci_error($c), oci_error($s));
     $bv = 0;
     $r = oci_execute($s, OCI_DEFAULT);
diff -pruN 7.2.9-1/ext/oci8/tests/bug68298.phpt 7.2.11-3/ext/oci8/tests/bug68298.phpt
--- 7.2.9-1/ext/oci8/tests/bug68298.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug68298.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -11,7 +11,7 @@ if (PHP_INT_SIZE != 8) die("skip this te
 require(dirname(__FILE__).'/connect.inc');
 
 $stmtarray = array(
-	"DROP TABLE BUG68298", 
+	"DROP TABLE BUG68298",
 	"CREATE TABLE BUG68298 (COL1 NUMBER(20))"
 );
 
@@ -38,7 +38,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 array(1) {
   ["COL1"]=>
   array(2) {
diff -pruN 7.2.9-1/ext/oci8/tests/bug70700.phpt 7.2.11-3/ext/oci8/tests/bug70700.phpt
--- 7.2.9-1/ext/oci8/tests/bug70700.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug70700.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -9,7 +9,7 @@ ashnazg@php.net
 if (!extension_loaded('mbstring')) die('skip mbstring is not enabled');
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --ENV--
 NLS_LANG=.AL32UTF8
 --FILE--
@@ -155,7 +155,7 @@ echo 'size of stream4a is ', strlen($str
 echo 'beg of stream4a is ', $start4a, PHP_EOL;
 echo 'end of stream4a is ', $ending4a, PHP_EOL;
 
---EXPECTF--
+--EXPECT--
 
 Test 1: j
 size of string1 is 1000006 bytes, 1000006 chars.
diff -pruN 7.2.9-1/ext/oci8/tests/bug71148.phpt 7.2.11-3/ext/oci8/tests/bug71148.phpt
--- 7.2.9-1/ext/oci8/tests/bug71148.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug71148.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -127,7 +127,7 @@ var_dump($cache3);
 
 oci_free_statement($stmt);
 
-// Test 6: Bind IN OUT parameter within the same scope of execute 
+// Test 6: Bind IN OUT parameter within the same scope of execute
 
 $sql = "call bindproc(:var1, :var2, :var3)";
 $cache1 = 'STR1';
diff -pruN 7.2.9-1/ext/oci8/tests/bug71422.phpt 7.2.11-3/ext/oci8/tests/bug71422.phpt
--- 7.2.9-1/ext/oci8/tests/bug71422.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug71422.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -49,7 +49,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 array(1) {
   ["RAW_QUERY"]=>
   string(3) "Foo"
diff -pruN 7.2.9-1/ext/oci8/tests/bug71600.phpt 7.2.11-3/ext/oci8/tests/bug71600.phpt
--- 7.2.9-1/ext/oci8/tests/bug71600.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug71600.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,17 +4,17 @@ Bug #71600 (oci_fetch_all result in segf
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => true);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
 require(dirname(__FILE__).'/connect.inc');
-		
+
 // Initialize
 
 $stmtarray = array(
-         "create table bug71600_tab (col1 number, col2 number, col3 number, 
-                                     col4 number, col5 number, col6 number, 
+         "create table bug71600_tab (col1 number, col2 number, col3 number,
+                                     col4 number, col5 number, col6 number,
                                      col7 number, col8 number, col9 number)",
          "insert into bug71600_tab values(1, 2, 3, 4, 5, 6, 7, 8, 9)",
          "insert into bug71600_tab values(11, 12, 13, 14, 15, 16, 17, 18, 19)"
@@ -23,7 +23,7 @@ $stmtarray = array(
 oci8_test_sql_execute($c, $stmtarray);
 
 // Run test
-	
+
 $sql = "select col1,col2,col3,col4,col5,col6,col7,col8,col9 from bug71600_tab";
 
 echo "Test 1\n";
@@ -80,7 +80,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECT--	
+--EXPECT--
 Test 1
 Executing SELECT statament...
 Fetching data by columns...
diff -pruN 7.2.9-1/ext/oci8/tests/bug74625.phpt 7.2.11-3/ext/oci8/tests/bug74625.phpt
--- 7.2.9-1/ext/oci8/tests/bug74625.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/bug74625.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -49,7 +49,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 array(5) {
   [0]=>
   int(-2)
diff -pruN 7.2.9-1/ext/oci8/tests/close.phpt 7.2.11-3/ext/oci8/tests/close.phpt
--- 7.2.9-1/ext/oci8/tests/close.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/close.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -10,8 +10,8 @@ require dirname(__FILE__).'/connect.inc'
 oci_close($c);
 
 oci_connect($user, $password, $dbase);
-	
+
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECT--
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/coll_001.phpt 7.2.11-3/ext/oci8/tests/coll_001.phpt
--- 7.2.9-1/ext/oci8/tests/coll_001.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_001.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_new_collection()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_002_func.phpt 7.2.11-3/ext/oci8/tests/coll_002_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_002_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_002_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_new_collection() + free()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_002.phpt 7.2.11-3/ext/oci8/tests/coll_002.phpt
--- 7.2.9-1/ext/oci8/tests/coll_002.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_002.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_new_collection() + free()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_003_func.phpt 7.2.11-3/ext/oci8/tests/coll_003_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_003_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_003_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collection methods
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_003.phpt 7.2.11-3/ext/oci8/tests/coll_003.phpt
--- 7.2.9-1/ext/oci8/tests/coll_003.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_003.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collection methods
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_004_func.phpt 7.2.11-3/ext/oci8/tests/coll_004_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_004_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_004_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_collection_assign()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_004.phpt 7.2.11-3/ext/oci8/tests/coll_004.phpt
--- 7.2.9-1/ext/oci8/tests/coll_004.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_004.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_collection_assign()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_005.phpt 7.2.11-3/ext/oci8/tests/coll_005.phpt
--- 7.2.9-1/ext/oci8/tests/coll_005.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_005.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ ocinewcollection()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_006_func.phpt 7.2.11-3/ext/oci8/tests/coll_006_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_006_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_006_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ ocinewcollection() + free()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_006.phpt 7.2.11-3/ext/oci8/tests/coll_006.phpt
--- 7.2.9-1/ext/oci8/tests/coll_006.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_006.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ ocinewcollection() + free()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_007.phpt 7.2.11-3/ext/oci8/tests/coll_007.phpt
--- 7.2.9-1/ext/oci8/tests/coll_007.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_007.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collection methods
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_008.phpt 7.2.11-3/ext/oci8/tests/coll_008.phpt
--- 7.2.9-1/ext/oci8/tests/coll_008.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_008.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ ocicollassign()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_009_func.phpt 7.2.11-3/ext/oci8/tests/coll_009_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_009_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_009_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and wrong dates
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF DATE";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_009.phpt 7.2.11-3/ext/oci8/tests/coll_009.phpt
--- 7.2.9-1/ext/oci8/tests/coll_009.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_009.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and wrong dates
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF DATE";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_010_func.phpt 7.2.11-3/ext/oci8/tests/coll_010_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_010_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_010_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and nulls
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR(10)";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_010.phpt 7.2.11-3/ext/oci8/tests/coll_010.phpt
--- 7.2.9-1/ext/oci8/tests/coll_010.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_010.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and nulls
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR(10)";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_011_func.phpt 7.2.11-3/ext/oci8/tests/coll_011_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_011_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_011_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and strings
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR(10)";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_011.phpt 7.2.11-3/ext/oci8/tests/coll_011.phpt
--- 7.2.9-1/ext/oci8/tests/coll_011.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_011.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and strings
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR(10)";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_012_func.phpt 7.2.11-3/ext/oci8/tests/coll_012_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_012_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_012_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and correct dates
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF DATE";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_012.phpt 7.2.11-3/ext/oci8/tests/coll_012.phpt
--- 7.2.9-1/ext/oci8/tests/coll_012.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_012.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and correct dates
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF DATE";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_013_func.phpt 7.2.11-3/ext/oci8/tests/coll_013_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_013_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_013_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and correct dates (2)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF DATE";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_013.phpt 7.2.11-3/ext/oci8/tests/coll_013.phpt
--- 7.2.9-1/ext/oci8/tests/coll_013.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_013.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and correct dates (2)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF DATE";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_014_func.phpt 7.2.11-3/ext/oci8/tests/coll_014_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_014_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_014_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and strings (2)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR(10)";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_014.phpt 7.2.11-3/ext/oci8/tests/coll_014.phpt
--- 7.2.9-1/ext/oci8/tests/coll_014.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_014.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and strings (2)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR(10)";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_015_func.phpt 7.2.11-3/ext/oci8/tests/coll_015_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_015_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_015_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and numbers (2)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF NUMBER";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_015.phpt 7.2.11-3/ext/oci8/tests/coll_015.phpt
--- 7.2.9-1/ext/oci8/tests/coll_015.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_015.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and numbers (2)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF NUMBER";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_016_func.phpt 7.2.11-3/ext/oci8/tests/coll_016_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_016_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_016_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and negative/too big element
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF NUMBER";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_016.phpt 7.2.11-3/ext/oci8/tests/coll_016.phpt
--- 7.2.9-1/ext/oci8/tests/coll_016.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_016.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and negative/too big element
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF NUMBER";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_017_func.phpt 7.2.11-3/ext/oci8/tests/coll_017_func.phpt
--- 7.2.9-1/ext/oci8/tests/coll_017_func.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_017_func.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and nulls (2)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR(10)";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_017.phpt 7.2.11-3/ext/oci8/tests/coll_017.phpt
--- 7.2.9-1/ext/oci8/tests/coll_017.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_017.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ collections and nulls (2)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,7 +18,7 @@ $statement = OCIParse($c,$ora_sql);
 @OCIExecute($statement);
 
 $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR(10)";
-			  
+
 $statement = OCIParse($c,$ora_sql);
 OCIExecute($statement);
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_018.phpt 7.2.11-3/ext/oci8/tests/coll_018.phpt
--- 7.2.9-1/ext/oci8/tests/coll_018.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_018.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Collection trim tests
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/coll_019.phpt 7.2.11-3/ext/oci8/tests/coll_019.phpt
--- 7.2.9-1/ext/oci8/tests/coll_019.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/coll_019.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,7 @@ Test collection Oracle error handling co
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
-$target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
-require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/commit_001.phpt 7.2.11-3/ext/oci8/tests/commit_001.phpt
--- 7.2.9-1/ext/oci8/tests/commit_001.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/commit_001.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Test OCI_NO_AUTO_COMMIT constant
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -74,10 +74,10 @@ var_dump($all);
 
 
 require(dirname(__FILE__).'/drop_table.inc');
-	
+
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 int(0)
 array(5) {
diff -pruN 7.2.9-1/ext/oci8/tests/commit_002.phpt 7.2.11-3/ext/oci8/tests/commit_002.phpt
--- 7.2.9-1/ext/oci8/tests/commit_002.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/commit_002.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Test oci_commit failure
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/commit_old.phpt 7.2.11-3/ext/oci8/tests/commit_old.phpt
--- 7.2.9-1/ext/oci8/tests/commit_old.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/commit_old.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ ocicommit()/ocirollback()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -64,7 +64,7 @@ var_dump($all);
 
 
 require dirname(__FILE__).'/drop_table.inc';
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/conn_attr_1.phpt 7.2.11-3/ext/oci8/tests/conn_attr_1.phpt
--- 7.2.9-1/ext/oci8/tests/conn_attr_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/conn_attr_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Set and get of connection attributes with all types of connections.
 --SKIPIF--
-<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 
@@ -18,7 +18,7 @@ if (!(isset($matches[0]) && $matches[1]
 <?php
 
 $testuser     = 'testuser_attr_1';  // Used in conn_attr.inc
-$testpassword = 'testuser'; 
+$testpassword = 'testuser';
 
 require(dirname(__FILE__)."/conn_attr.inc");
 
diff -pruN 7.2.9-1/ext/oci8/tests/conn_attr_2.phpt 7.2.11-3/ext/oci8/tests/conn_attr_2.phpt
--- 7.2.9-1/ext/oci8/tests/conn_attr_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/conn_attr_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Set and get of connection attributes across persistent connections and sysdba connection.
 --SKIPIF--
-<?php 
+<?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 
@@ -20,7 +20,7 @@ oci8.privileged_connect = On
 <?php
 
 $testuser     = 'testuser_attr_2';  // Used in conn_attr.inc
-$testpassword = 'testuser'; 
+$testpassword = 'testuser';
 
 require(dirname(__FILE__)."/conn_attr.inc");
 
diff -pruN 7.2.9-1/ext/oci8/tests/conn_attr_3.phpt 7.2.11-3/ext/oci8/tests/conn_attr_3.phpt
--- 7.2.9-1/ext/oci8/tests/conn_attr_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/conn_attr_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -17,7 +17,7 @@ if (!(isset($matches[0]) && $matches[1]
 <?php
 
 $testuser     = 'testuser_attr_3';  // Used in conn_attr.inc
-$testpassword = 'testuser'; 
+$testpassword = 'testuser';
 
 require(dirname(__FILE__)."/conn_attr.inc");
 
diff -pruN 7.2.9-1/ext/oci8/tests/conn_attr_4.phpt 7.2.11-3/ext/oci8/tests/conn_attr_4.phpt
--- 7.2.9-1/ext/oci8/tests/conn_attr_4.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/conn_attr_4.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -10,7 +10,7 @@ if (strcasecmp($user, "system") && strca
 if ($test_drcp) die("skip output might vary with DRCP");
 
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
-if (!(isset($matches[0]) && 
+if (!(isset($matches[0]) &&
       (($matches[1] == 11 && $matches[2] >= 2) ||
        ($matches[1] >= 12)
        ))) {
@@ -22,7 +22,7 @@ if (!(isset($matches[0]) &&
 <?php
 
 $testuser     = 'testuser_attr_4';  // Used in conn_attr.inc
-$testpassword = 'testuser'; 
+$testpassword = 'testuser';
 
 require(dirname(__FILE__)."/conn_attr.inc");
 
@@ -62,7 +62,7 @@ foreach($values_array as $val ) {
 	oci_set_module_name($c1,$val);
 	oci_set_client_identifier($c1,$val);
 	oci_set_client_info($c1,$val);
-	$r = oci_set_action($c1,$val);	
+	$r = oci_set_action($c1,$val);
 	if ($r) {
 		echo "Values set successfully to $val\n";
 		foreach($attr_array as $attr) {
diff -pruN 7.2.9-1/ext/oci8/tests/conn_attr_5.phpt 7.2.11-3/ext/oci8/tests/conn_attr_5.phpt
--- 7.2.9-1/ext/oci8/tests/conn_attr_5.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/conn_attr_5.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -17,7 +17,7 @@ if (!(isset($matches[0]) && $matches[1]
 <?php
 
 $testuser     = 'testuser_attr_5';  // Used in conn_attr.inc
-$testpassword = 'testuser'; 
+$testpassword = 'testuser';
 
 require(dirname(__FILE__)."/conn_attr.inc");
 
@@ -37,7 +37,6 @@ function set_scope() {
     set_attr($conn2,'ACTION',50);
     $conn3 = get_conn(2);
     set_attr($conn3,'MODULE',50);
-    
 }
 
 function get_scope() {
@@ -52,7 +51,7 @@ function get_scope() {
 clean_up($c);
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 **Test - Set and get values for the attributes with scope end ************
 Testing with oci_connect()
 Value of CLIENT_INFO has been set successfully
diff -pruN 7.2.9-1/ext/oci8/tests/conn_attr.inc 7.2.11-3/ext/oci8/tests/conn_attr.inc
--- 7.2.9-1/ext/oci8/tests/conn_attr.inc	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/conn_attr.inc	2018-10-09 15:09:41.000000000 +0000
@@ -19,7 +19,7 @@ if ((isset($matches[1]) && $matches[1] >
         "grant use on edition myedition1 to $testuser",
     );
 } else {
-    // Server is Pre 11.2 
+    // Server is Pre 11.2
     $stmtarray = array(
         "drop user $testuser cascade",
         "create user $testuser identified by $testpassword",
@@ -34,7 +34,7 @@ foreach ($stmtarray as $stmt) {
 		$m = oci_error($s);
 		if (!in_array($m['code'], array(   // ignore expected errors
                         942 // table or view does not exist
-                     , 1918 // user does not exist 
+                     , 1918 // user does not exist
                      , 2289 // sequence does not exist
                      , 4080 // trigger does not exist
                     , 38802 // edition does not exist
@@ -50,8 +50,8 @@ foreach ($stmtarray as $stmt) {
 
 function get_attr($conn,$attr)
 {
-    $sel_stmt="select " .$attr. " from v\$session where sid = 
-	(select sid from v\$session where audsid = 
+    $sel_stmt="select " .$attr. " from v\$session where sid =
+	(select sid from v\$session where audsid =
 	sys_context('userenv','sessionid')) order by 1";
     $s2 = oci_parse($conn,$sel_stmt);
     oci_execute($s2,OCI_DEFAULT);
@@ -60,8 +60,8 @@ function get_attr($conn,$attr)
     }
 }
 
-/* Pass $conn_type=1 for a connection with oci_connect() 
-   Pass $conn_type=2 for ooci_pconnect 
+/* Pass $conn_type=1 for a connection with oci_connect()
+   Pass $conn_type=2 for ooci_pconnect
    Default will give a oci_new_connect */
 
 function get_conn($conn_type)
@@ -87,23 +87,23 @@ function get_conn($conn_type)
 
 function set_attr($conn,$attr,$sufix)
 {
-	if (!strcmp($attr,'MODULE')) 
+	if (!strcmp($attr,'MODULE'))
 		$r = oci_set_module_name($conn,'PHP TEST'.$sufix);
-	else if (!strcmp($attr,'ACTION')) 
+	else if (!strcmp($attr,'ACTION'))
         $r = oci_set_action($conn,'TASK'.$sufix);
-	else if (!strcmp($attr,'CLIENT_INFO')) 
+	else if (!strcmp($attr,'CLIENT_INFO'))
         $r = oci_set_client_info($conn,'INFO1'.$sufix);
-	else if (!strcmp($attr,'CLIENT_IDENTIFIER')) 
+	else if (!strcmp($attr,'CLIENT_IDENTIFIER'))
         $r = oci_set_client_identifier($conn,'ID00'.$sufix);
 	else
 		echo "Pass one of the above four attributes!!!\n";
 	if ($r) {
 		echo "Value of $attr has been set successfully\n";
     }
-    
+
 	//Do a round-trip here
 	oci_server_version($conn);
-	return $r;    
+	return $r;
 }
 
 function set_edit_attr($value)
@@ -126,7 +126,7 @@ function get_edit_attr ($conn) {
 
 function get_sys_attr($conn,$attr)
 {
-	$sel_stmt="select " .$attr. " from v\$session where sid = 
+	$sel_stmt="select " .$attr. " from v\$session where sid =
 	(select sid from v\$session where audsid = sys_context('userenv','sessionid')) order by 1";
     $s2 = oci_parse($conn,$sel_stmt);
     oci_execute($s2,OCI_DEFAULT);
@@ -141,7 +141,7 @@ function clean_up($c) {
         "drop edition myedition cascade",
         "drop user " . $GLOBALS['testuser'] . " cascade",
 	);
-    
+
 	foreach ($stmtarray as $stmt) {
         $s = oci_parse($c, $stmt);
         @oci_execute($s);
diff -pruN 7.2.9-1/ext/oci8/tests/connect_old.phpt 7.2.11-3/ext/oci8/tests/connect_old.phpt
--- 7.2.9-1/ext/oci8/tests/connect_old.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_old.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -13,7 +13,7 @@ if (!empty($dbase)) {
 else {
 	var_dump(ocilogon($user, $password));
 }
-	
+
 echo "Done\n";
 
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/connect.phpt 7.2.11-3/ext/oci8/tests/connect.phpt
--- 7.2.9-1/ext/oci8/tests/connect.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -13,7 +13,7 @@ if (!empty($dbase)) {
 else {
 	var_dump(oci_connect($user, $password));
 }
-	
+
 echo "Done\n";
 
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/connect_scope1.phpt 7.2.11-3/ext/oci8/tests/connect_scope1.phpt
--- 7.2.9-1/ext/oci8/tests/connect_scope1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_scope1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -18,7 +18,7 @@ if (!empty($dbase))
 	$c1 = oci_new_connect($user,$password,$dbase);
 else
 	$c1 = oci_new_connect($user,$password);
-						 						 
+						 
 oci8_test_sql_execute($c1, $stmtarray);
 
 // Run Test
@@ -68,7 +68,7 @@ oci8_test_sql_execute($c1, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1 - oci_connect
 array(1) {
   ["C1"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/connect_scope2.phpt 7.2.11-3/ext/oci8/tests/connect_scope2.phpt
--- 7.2.9-1/ext/oci8/tests/connect_scope2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_scope2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -18,7 +18,7 @@ if (!empty($dbase))
 	$c1 = oci_new_connect($user,$password,$dbase);
 else
 	$c1 = oci_new_connect($user,$password);
-						 						 
+						 
 oci8_test_sql_execute($c1, $stmtarray);
 
 // Run Test
@@ -68,7 +68,7 @@ oci8_test_sql_execute($c1, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1 - oci_pconnect
 array(1) {
   ["C1"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/connect_scope_try1.phpt 7.2.11-3/ext/oci8/tests/connect_scope_try1.phpt
--- 7.2.9-1/ext/oci8/tests/connect_scope_try1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_scope_try1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -20,7 +20,7 @@ if (!empty($dbase))
 	$c1 = oci_new_connect($user,$password,$dbase);
 else
 	$c1 = oci_new_connect($user,$password);
-						 
+
 oci8_test_sql_execute($c1, $stmtarray);
 
 // Run Test
diff -pruN 7.2.9-1/ext/oci8/tests/connect_scope_try2.phpt 7.2.11-3/ext/oci8/tests/connect_scope_try2.phpt
--- 7.2.9-1/ext/oci8/tests/connect_scope_try2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_scope_try2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -20,7 +20,7 @@ if (!empty($dbase))
 	$c1 = oci_new_connect($user,$password,$dbase);
 else
 	$c1 = oci_new_connect($user,$password);
-						 
+
 oci8_test_sql_execute($c1, $stmtarray);
 
 // Run Test
diff -pruN 7.2.9-1/ext/oci8/tests/connect_scope_try3.phpt 7.2.11-3/ext/oci8/tests/connect_scope_try3.phpt
--- 7.2.9-1/ext/oci8/tests/connect_scope_try3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_scope_try3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -20,7 +20,7 @@ if (!empty($dbase))
 	$c1 = oci_new_connect($user,$password,$dbase);
 else
 	$c1 = oci_new_connect($user,$password);
-						 
+
 oci8_test_sql_execute($c1, $stmtarray);
 
 // Run Test
diff -pruN 7.2.9-1/ext/oci8/tests/connect_scope_try4.phpt 7.2.11-3/ext/oci8/tests/connect_scope_try4.phpt
--- 7.2.9-1/ext/oci8/tests/connect_scope_try4.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_scope_try4.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -20,7 +20,7 @@ if (!empty($dbase))
 	$c1 = oci_new_connect($user,$password,$dbase);
 else
 	$c1 = oci_new_connect($user,$password);
-						 
+
 oci8_test_sql_execute($c1, $stmtarray);
 
 // Run Test
diff -pruN 7.2.9-1/ext/oci8/tests/connect_scope_try5.phpt 7.2.11-3/ext/oci8/tests/connect_scope_try5.phpt
--- 7.2.9-1/ext/oci8/tests/connect_scope_try5.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_scope_try5.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -20,7 +20,7 @@ if (!empty($dbase))
 	$c1 = oci_new_connect($user,$password,$dbase);
 else
 	$c1 = oci_new_connect($user,$password);
-						 
+
 oci8_test_sql_execute($c1, $stmtarray);
 
 // Run Test
diff -pruN 7.2.9-1/ext/oci8/tests/connect_scope_try6.phpt 7.2.11-3/ext/oci8/tests/connect_scope_try6.phpt
--- 7.2.9-1/ext/oci8/tests/connect_scope_try6.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_scope_try6.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -20,7 +20,7 @@ if (!empty($dbase))
 	$c1 = oci_new_connect($user,$password,$dbase);
 else
 	$c1 = oci_new_connect($user,$password);
-						 
+
 oci8_test_sql_execute($c1, $stmtarray);
 
 // Run Test
diff -pruN 7.2.9-1/ext/oci8/tests/connect_with_charset_001.phpt 7.2.11-3/ext/oci8/tests/connect_with_charset_001.phpt
--- 7.2.9-1/ext/oci8/tests/connect_with_charset_001.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_with_charset_001.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -21,7 +21,7 @@ var_dump($c5 == $c6);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 resource(%d) of type (oci8 connection)
 resource(%d) of type (oci8 connection)
 
diff -pruN 7.2.9-1/ext/oci8/tests/connect_without_oracle_home_11.phpt 7.2.11-3/ext/oci8/tests/connect_without_oracle_home_11.phpt
--- 7.2.9-1/ext/oci8/tests/connect_without_oracle_home_11.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_without_oracle_home_11.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 oci_connect() without ORACLE_HOME set (OCIServerAttach() segfaults)
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 ob_start();
 phpinfo(INFO_MODULES);
 $phpinfo = ob_get_clean();
@@ -31,7 +31,7 @@ if (!empty($dbase)) {
 else {
 	var_dump(oci_connect($user, $password));
 }
-	
+
 ?>
 ===DONE===
 <?php exit(0); ?>
diff -pruN 7.2.9-1/ext/oci8/tests/connect_without_oracle_home_old_11.phpt 7.2.11-3/ext/oci8/tests/connect_without_oracle_home_old_11.phpt
--- 7.2.9-1/ext/oci8/tests/connect_without_oracle_home_old_11.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_without_oracle_home_old_11.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 ocilogon() without ORACLE_HOME set (OCIServerAttach() segfaults)
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 ob_start();
 phpinfo(INFO_MODULES);
 $phpinfo = ob_get_clean();
@@ -31,7 +31,7 @@ if (!empty($dbase)) {
 else {
 	var_dump(ocilogon($user, $password));
 }
-	
+
 ?>
 ===DONE===
 <?php exit(0); ?>
diff -pruN 7.2.9-1/ext/oci8/tests/connect_without_oracle_home_old.phpt 7.2.11-3/ext/oci8/tests/connect_without_oracle_home_old.phpt
--- 7.2.9-1/ext/oci8/tests/connect_without_oracle_home_old.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_without_oracle_home_old.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 ocilogon() without ORACLE_HOME set (OCIServerAttach() segfaults)
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 ob_start();
 phpinfo(INFO_MODULES);
 $phpinfo = ob_get_clean();
@@ -24,7 +24,7 @@ if (!empty($dbase)) {
 else {
 	var_dump(ocilogon($user, $password));
 }
-	
+
 ?>
 ===DONE===
 <?php exit(0); ?>
diff -pruN 7.2.9-1/ext/oci8/tests/connect_without_oracle_home.phpt 7.2.11-3/ext/oci8/tests/connect_without_oracle_home.phpt
--- 7.2.9-1/ext/oci8/tests/connect_without_oracle_home.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/connect_without_oracle_home.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 oci_connect() without ORACLE_HOME set (OCIServerAttach() segfaults)
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 ob_start();
 phpinfo(INFO_MODULES);
 $phpinfo = ob_get_clean();
@@ -28,7 +28,7 @@ if (!empty($dbase)) {
 else {
 	var_dump(oci_connect($user, $password));
 }
-	
+
 ?>
 ===DONE===
 <?php exit(0); ?>
diff -pruN 7.2.9-1/ext/oci8/tests/create_type.inc 7.2.11-3/ext/oci8/tests/create_type.inc
--- 7.2.9-1/ext/oci8/tests/create_type.inc	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/create_type.inc	2018-10-09 15:09:41.000000000 +0000
@@ -9,7 +9,7 @@
         @OCIExecute($statement);
 
         $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF NUMBER(11)";
-                      
+
         $statement = OCIParse($c,$ora_sql);
         OCIExecute($statement);
     }
diff -pruN 7.2.9-1/ext/oci8/tests/cursor_bind_err.phpt 7.2.11-3/ext/oci8/tests/cursor_bind_err.phpt
--- 7.2.9-1/ext/oci8/tests/cursor_bind_err.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/cursor_bind_err.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ binding a cursor (with errors)
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/cursor_bind.phpt 7.2.11-3/ext/oci8/tests/cursor_bind.phpt
--- 7.2.9-1/ext/oci8/tests/cursor_bind.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/cursor_bind.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ bind and fetch cursor from a statement
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -56,7 +56,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECT--  
+--EXPECT--
 array(2) {
   [0]=>
   string(1) "1"
diff -pruN 7.2.9-1/ext/oci8/tests/cursors_old.phpt 7.2.11-3/ext/oci8/tests/cursors_old.phpt
--- 7.2.9-1/ext/oci8/tests/cursors_old.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/cursors_old.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ fetching cursor from a statement
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/cursors.phpt 7.2.11-3/ext/oci8/tests/cursors.phpt
--- 7.2.9-1/ext/oci8/tests/cursors.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/cursors.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ fetching cursor from a statement
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/dbmsoutput.phpt 7.2.11-3/ext/oci8/tests/dbmsoutput.phpt
--- 7.2.9-1/ext/oci8/tests/dbmsoutput.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/dbmsoutput.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ PL/SQL: dbms_output
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -132,7 +132,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 array(1) {
   [0]=>
diff -pruN 7.2.9-1/ext/oci8/tests/db_op_1.phpt 7.2.11-3/ext/oci8/tests/db_op_1.phpt
--- 7.2.9-1/ext/oci8/tests/db_op_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/db_op_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 oci_set_db_operation: basic test for end-to-end tracing
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (strcasecmp($user, "system") && strcasecmp($user, "sys")) {
@@ -13,11 +13,11 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 if (!function_exists('oci_set_db_operation'))
-{ 
+{
     die("skip function oci_set_db_operation() does not exist");
 }
 ?>
@@ -47,7 +47,7 @@ dq($c, 'select dbop_name from v$sql_moni
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 array(1) {
   ["DUMMY"]=>
@@ -58,4 +58,4 @@ array(1) {
   string(7) "db_op_1"
 }
 ===DONE===
-    
+
diff -pruN 7.2.9-1/ext/oci8/tests/db_op_2.phpt 7.2.11-3/ext/oci8/tests/db_op_2.phpt
--- 7.2.9-1/ext/oci8/tests/db_op_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/db_op_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 oci_set_db_operation: basic test for end-to-end tracing
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (strcasecmp($user, "system") && strcasecmp($user, "sys")) {
@@ -13,11 +13,11 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 if (!function_exists('oci_set_db_operation'))
-{ 
+{
     die("skip function oci_set_db_operation() does not exist");
 }
 ?>
@@ -49,7 +49,7 @@ dq($c, 'select dbop_name from v$sql_moni
 <?php exit(0); ?>
 --XFAIL--
 Fails due to Oracle Bug 16695981
---EXPECTF--
+--EXPECT--
 Test 1
 array(1) {
   ["DUMMY"]=>
@@ -66,4 +66,4 @@ array(2) {
   string(7) "db_op_2a"
 }
 ===DONE===
-    
+
diff -pruN 7.2.9-1/ext/oci8/tests/debug.phpt 7.2.11-3/ext/oci8/tests/debug.phpt
--- 7.2.9-1/ext/oci8/tests/debug.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/debug.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -15,7 +15,7 @@ if (!empty($dbase)) {
 else {
 	oci_connect($user, $password);
 }
-	
+
 oci_internal_debug(false);
 
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/default_prefetch0.phpt 7.2.11-3/ext/oci8/tests/default_prefetch0.phpt
--- 7.2.9-1/ext/oci8/tests/default_prefetch0.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/default_prefetch0.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -44,7 +44,7 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/default_prefetch1.phpt 7.2.11-3/ext/oci8/tests/default_prefetch1.phpt
--- 7.2.9-1/ext/oci8/tests/default_prefetch1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/default_prefetch1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -44,7 +44,7 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/default_prefetch2.phpt 7.2.11-3/ext/oci8/tests/default_prefetch2.phpt
--- 7.2.9-1/ext/oci8/tests/default_prefetch2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/default_prefetch2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -45,7 +45,7 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/default_prefetch.phpt 7.2.11-3/ext/oci8/tests/default_prefetch.phpt
--- 7.2.9-1/ext/oci8/tests/default_prefetch.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/default_prefetch.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -44,7 +44,7 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/define2.phpt 7.2.11-3/ext/oci8/tests/define2.phpt
--- 7.2.9-1/ext/oci8/tests/define2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/define2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Test oci_define_by_name types
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -14,7 +14,7 @@ $stmtarray = array(
 	"drop table phptestrawtable",
 	"create table phptestrawtable( id number(10), fileimage raw(1000))"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 $stmt = oci_parse ($c, "insert into phptestrawtable (id, fileimage) values (:id, :fileimage)");
diff -pruN 7.2.9-1/ext/oci8/tests/define3.phpt 7.2.11-3/ext/oci8/tests/define3.phpt
--- 7.2.9-1/ext/oci8/tests/define3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/define3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Test oci_define_by_name() LOB descriptor
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -14,7 +14,7 @@ $stmtarray = array(
 	"drop table phpdefblobtable",
 	"create table phpdefblobtable (id number(10), fileimage blob)"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 // Load data
@@ -78,7 +78,7 @@ while (oci_fetch($stmt)) {
 $stmtarray = array(
 	"drop table phpdefblobtable"
 );
-						 
+
 oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
diff -pruN 7.2.9-1/ext/oci8/tests/define5.phpt 7.2.11-3/ext/oci8/tests/define5.phpt
--- 7.2.9-1/ext/oci8/tests/define5.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/define5.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -57,7 +57,7 @@ oci8_test_sql_execute($c, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1 - must do define before execute
 bool(true)
 NULL
diff -pruN 7.2.9-1/ext/oci8/tests/define6.phpt 7.2.11-3/ext/oci8/tests/define6.phpt
--- 7.2.9-1/ext/oci8/tests/define6.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/define6.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_define_by_name tests with REF CURSOR
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -22,7 +22,7 @@ oci8_test_sql_execute($c, $stmtarray);
 
 // Run Test
 
-$sql = 
+$sql =
 "DECLARE
   TYPE curtype IS REF CURSOR;
   cursor_var curtype;
diff -pruN 7.2.9-1/ext/oci8/tests/define_old.phpt 7.2.11-3/ext/oci8/tests/define_old.phpt
--- 7.2.9-1/ext/oci8/tests/define_old.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/define_old.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -43,6 +43,6 @@ oci8_test_sql_execute($c, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 string(4) "some"
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/descriptors.phpt 7.2.11-3/ext/oci8/tests/descriptors.phpt
--- 7.2.9-1/ext/oci8/tests/descriptors.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/descriptors.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ commit connection after destroying the d
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -41,7 +41,7 @@ require dirname(__FILE__).'/drop_table.i
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 array(1) {
   ["BLOB"]=>
   object(OCI-Lob)#%d (1) {
diff -pruN 7.2.9-1/ext/oci8/tests/details.inc 7.2.11-3/ext/oci8/tests/details.inc
--- 7.2.9-1/ext/oci8/tests/details.inc	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/details.inc	2018-10-09 15:09:41.000000000 +0000
@@ -30,11 +30,11 @@ if (file_exists(dirname(__FILE__)."/deta
 		$dbase						= "localhost/XE";
 		$test_drcp					= FALSE;
 	}
-	
+
 	/*
 	 * Common object names for scripts to use
 	 */
-	
+
 	$table_name = "tb".substr(str_replace(Array(".", "-"), "_", php_uname("n")), 0, 5);
 	$type_name = strtoupper("tp".substr(str_replace(Array(".", "-"), "_", php_uname("n")), 0, 5));
 	$schema = '';
diff -pruN 7.2.9-1/ext/oci8/tests/drcp_cclass1.phpt 7.2.11-3/ext/oci8/tests/drcp_cclass1.phpt
--- 7.2.9-1/ext/oci8/tests/drcp_cclass1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drcp_cclass1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,14 +1,14 @@
 --TEST--
 DRCP: Test setting connection class inline
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 require(dirname(__FILE__).'/connect.inc');
 if (!$test_drcp) die("skip testing DRCP connection class only works in DRCP mode");
 // Looked for :pooled in EZ connect string
 if (strpos($dbase, "/") !== false && stripos($dbase, ":pooled") === false)
     die('skip DRCP test requires a DRCP pooled server connection');
-if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user"); 
+if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user");
 
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches_sv);
 // This test in Oracle 12c needs a non-CDB or the root container
diff -pruN 7.2.9-1/ext/oci8/tests/drcp_conn_close1.phpt 7.2.11-3/ext/oci8/tests/drcp_conn_close1.phpt
--- 7.2.9-1/ext/oci8/tests/drcp_conn_close1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drcp_conn_close1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -30,9 +30,9 @@ oci_close($conn2);
 // Compare the resource numbers
 
 if ($rn1 === $rn2)
-	echo "Both connections share a resource : OK \n";
+	echo "Both connections share a resource : OK\n";
 else
-	echo "Both connections are different : NOT OK \n";
+	echo "Both connections are different : NOT OK\n";
 
 echo "Done\n";
 
@@ -41,5 +41,5 @@ echo "Done\n";
 This is with a OCI_CONNECT
 resource(%d) of type (oci8 connection)
 resource(%d) of type (oci8 connection)
-Both connections share a resource : OK 
+Both connections share a resource : OK
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/drcp_conn_close2.phpt 7.2.11-3/ext/oci8/tests/drcp_conn_close2.phpt
--- 7.2.9-1/ext/oci8/tests/drcp_conn_close2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drcp_conn_close2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -31,9 +31,9 @@ oci_close($conn2);
 // Compare the resource numbers
 
 if ($rn1 === $rn2)
-	echo "Both connections share a resource : NOT OK \n";
+	echo "Both connections share a resource : NOT OK\n";
 else
-	echo "Both connections are different : OK \n";
+	echo "Both connections are different : OK\n";
 
 echo "Done\n";
 
@@ -42,5 +42,5 @@ echo "Done\n";
 This is with a OCI_CONNECT
 resource(%d) of type (oci8 connection)
 resource(%d) of type (oci8 connection)
-Both connections are different : OK 
+Both connections are different : OK
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/drcp_connect1.phpt 7.2.11-3/ext/oci8/tests/drcp_connect1.phpt
--- 7.2.9-1/ext/oci8/tests/drcp_connect1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drcp_connect1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ DRCP: oci_connect()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs (Calling PL/SQL from SQL is not supported in TimesTen)
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --INI--
 oci8.connection_class=test
 oci8.old_oci_close_semantics=0
@@ -24,7 +24,7 @@ var_dump($conn1 = oci_connect($user,$pas
 // Create the package
 drcp_create_package($conn1);
 
-echo "Test 1b\n";     
+echo "Test 1b\n";
 // OCI_CONNECT
 echo " This is with OCI_CONNECT.....\n";
 drcp_select_packagevar($conn1); // Returns 0
@@ -35,7 +35,7 @@ echo " Connection conn1  closed....\n";
 echo "Test 2\n";
 // Second connection should return 0 for the package variable.
 var_dump($conn2 = oci_connect($user,$password,$dbase));
-echo " Select with connection 2 \n";
+echo " Select with connection 2\n";
 drcp_select_packagevar($conn2); // Returns 0
 drcp_set_packagevar($conn2,100);
 
@@ -43,7 +43,7 @@ echo "Test 3\n";
 // Third connection. There is no oci_close() for conn2 hence this should
 // return the value set by conn2.
 var_dump($conn3 = oci_connect($user,$password,$dbase));
-echo " Select with connection 3 \n";
+echo " Select with connection 3\n";
 drcp_select_packagevar($conn3); // Returns 100
 
 // Close all the connections
@@ -63,7 +63,7 @@ echo " Connection pconn1  closed....\n";
 
 echo "Test 5\n";
 var_dump($pconn2 = oci_pconnect($user,$password,$dbase));
-echo " Select with persistent connection 2 \n";
+echo " Select with persistent connection 2\n";
 drcp_select_packagevar($pconn2); // Returns 1000
 oci_close($pconn2);
 
@@ -80,12 +80,12 @@ Test 1b
  Connection conn1  closed....
 Test 2
 resource(%d) of type (oci8 connection)
- Select with connection 2 
+ Select with connection 2
  The value of the package variable is 0
  Package variable value set to 100
 Test 3
 resource(%d) of type (oci8 connection)
- Select with connection 3 
+ Select with connection 3
  The value of the package variable is 100
 Test 4
  This is with oci_pconnect().....
@@ -94,7 +94,7 @@ resource(%d) of type (oci8 persistent co
  Connection pconn1  closed....
 Test 5
 resource(%d) of type (oci8 persistent connection)
- Select with persistent connection 2 
+ Select with persistent connection 2
  The value of the package variable is 1000
 Done
 
diff -pruN 7.2.9-1/ext/oci8/tests/drcp_connection_class.phpt 7.2.11-3/ext/oci8/tests/drcp_connection_class.phpt
--- 7.2.9-1/ext/oci8/tests/drcp_connection_class.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drcp_connection_class.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -2,9 +2,9 @@
 DRCP: oci8.connection_class with ini_get() and ini_set()
 --SKIPIF--
 <?php
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 11)) { 
+if (!(isset($matches[0]) && $matches[0] >= 11)) {
     die("skip works only with Oracle 11g or greater version of Oracle client libraries");
 }
 ?>
@@ -16,15 +16,15 @@ oci8.connection_class=test
 echo "Setting a new connection class now\n";
 ini_set('oci8.connection_class',"New cc");
 
-// Get the New connection class name .Should return New CC
+// Get the New connection class name. Should return New CC
 
 $new_cc = ini_get('oci8.connection_class');
-echo "The New oci8.connection_class is $new_cc \n";
+echo "The New oci8.connection_class is $new_cc\n";
 
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Setting a new connection class now
-The New oci8.connection_class is New cc 
+The New oci8.connection_class is New cc
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/drcp_functions.inc 7.2.11-3/ext/oci8/tests/drcp_functions.inc
--- 7.2.9-1/ext/oci8/tests/drcp_functions.inc	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drcp_functions.inc	2018-10-09 15:09:41.000000000 +0000
@@ -7,7 +7,7 @@ function drcp_create_table($conn)
 	$create_sql = "CREATE TABLE DRCPTEST (id NUMBER, name VARCHAR2(10), dept VARCHAR2(10))";
 	$statement = oci_parse($conn, $create_sql);
 	oci_execute($statement);
-	
+
 	$id_values = array(100,101,102,103,104,105,106,107,108);
 	$name_values = array("WIILIAMS","JOHN","SMITH","JONES","ADAMS","ROBERT",
 						 "BILL","LAWSON","MARY");
@@ -17,7 +17,7 @@ function drcp_create_table($conn)
 		$insert = "INSERT INTO DRCPTEST VALUES(".$id_values[$i].",'". $name_values[$i]."','".$dept_values[$i]."')";
 		$s = oci_parse($conn, $insert);
 		oci_execute($s);
-	}	
+	}
 }
 
 function drcp_drop_table($conn)
@@ -74,12 +74,12 @@ function drcp_create_package($c)
 			end;";
 	$s1 = oci_parse($c, $create_package_stmt);
 	oci_execute($s1);
-	
+
 	$package_body = "create or replace package body drcp_test_package as
 		procedure p1(var1 int) is
 		begin
 		var :=var1;
-		end;	
+		end;
 		function f1 return number is
 		begin
 		return drcp_test_package.var;
diff -pruN 7.2.9-1/ext/oci8/tests/drcp_pconn_close1.phpt 7.2.11-3/ext/oci8/tests/drcp_pconn_close1.phpt
--- 7.2.9-1/ext/oci8/tests/drcp_pconn_close1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drcp_pconn_close1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -29,9 +29,9 @@ oci_close($conn2);
 // Compare the resource numbers
 
 if ($rn1 === $rn2)
-	echo "Both connections share a resource : OK \n";
+	echo "Both connections share a resource : OK\n";
 else
-	echo "Both connections are different : NOT OK \n";
+	echo "Both connections are different : NOT OK\n";
 
 echo "Done\n";
 
@@ -40,5 +40,5 @@ echo "Done\n";
 This is with a OCI_PCONNECT
 resource(%d) of type (oci8 persistent connection)
 resource(%d) of type (oci8 persistent connection)
-Both connections share a resource : OK 
+Both connections share a resource : OK
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/drcp_pconn_close2.phpt 7.2.11-3/ext/oci8/tests/drcp_pconn_close2.phpt
--- 7.2.9-1/ext/oci8/tests/drcp_pconn_close2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drcp_pconn_close2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -31,9 +31,9 @@ oci_close($conn2);
 // Compare the resource numbers
 
 if ($rn1 === $rn2)
-	echo "Both connections share a resource : NOT OK \n";
+	echo "Both connections share a resource : NOT OK\n";
 else
-	echo "Both connections are different : OK \n";
+	echo "Both connections are different : OK\n";
 
 echo "Done\n";
 
@@ -42,5 +42,5 @@ echo "Done\n";
 This is with a OCI_PCONNECT
 resource(%d) of type (oci8 persistent connection)
 resource(%d) of type (oci8 persistent connection)
-Both connections are different : OK 
+Both connections are different : OK
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/driver_name_11gR2.phpt 7.2.11-3/ext/oci8/tests/driver_name_11gR2.phpt
--- 7.2.9-1/ext/oci8/tests/driver_name_11gR2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/driver_name_11gR2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Verify that the Driver Name attribute is set
 --SKIPIF--
-<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension");
 
 require(dirname(__FILE__)."/connect.inc");
 if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user");
@@ -26,7 +26,7 @@ get_attr($c);
 oci_close($c);
 
 echo"\n***Test 1.2 - Get the values from different connections **************\n";
-// with oci_pconnect() 
+// with oci_pconnect()
 echo "Testing with oci_pconnect()\n";
 $pc1=oci_pconnect($user,$password,$dbase);
 get_attr($pc1);
@@ -40,10 +40,10 @@ echo "Done\n";
 
 function get_attr($conn)
 {
-	$sel_stmt = "select client_driver 
-        from v\$session_connect_info sci, v\$session s 
-        where sci.client_driver is not null 
-          and sci.sid = s.sid 
+	$sel_stmt = "select client_driver
+        from v\$session_connect_info sci, v\$session s
+        where sci.client_driver is not null
+          and sci.sid = s.sid
           and s.audsid = userenv('SESSIONID')";
     $s2 = oci_parse($conn,$sel_stmt);
     oci_execute($s2,OCI_DEFAULT);
diff -pruN 7.2.9-1/ext/oci8/tests/driver_name.phpt 7.2.11-3/ext/oci8/tests/driver_name.phpt
--- 7.2.9-1/ext/oci8/tests/driver_name.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/driver_name.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Verify that the Driver Name attribute is set
 --SKIPIF--
-<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension");
 
 require(dirname(__FILE__)."/connect.inc");
 if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user");
@@ -29,7 +29,7 @@ get_attr($c);
 oci_close($c);
 
 echo"\n***Test 1.2 - Get the values from different connections **************\n";
-// with oci_pconnect() 
+// with oci_pconnect()
 echo "Testing with oci_pconnect()\n";
 $pc1=oci_pconnect($user,$password,$dbase);
 get_attr($pc1);
@@ -43,10 +43,10 @@ echo "Done\n";
 
 function get_attr($conn)
 {
-	$sel_stmt = "select client_driver 
-        from v\$session_connect_info sci, v\$session s 
-        where sci.client_driver is not null 
-          and sci.sid = s.sid 
+	$sel_stmt = "select client_driver
+        from v\$session_connect_info sci, v\$session s
+        where sci.client_driver is not null
+          and sci.sid = s.sid
           and s.audsid = userenv('SESSIONID')";
     $s2 = oci_parse($conn,$sel_stmt);
     oci_execute($s2,OCI_DEFAULT);
diff -pruN 7.2.9-1/ext/oci8/tests/drop_table.inc 7.2.11-3/ext/oci8/tests/drop_table.inc
--- 7.2.9-1/ext/oci8/tests/drop_table.inc	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/drop_table.inc	2018-10-09 15:09:41.000000000 +0000
@@ -1,6 +1,6 @@
 <?php
 if ($c) {
-    $ora_sql = "DROP TABLE ".$schema.$table_name;                      
+    $ora_sql = "DROP TABLE ".$schema.$table_name;
     $statement = oci_parse($c,$ora_sql);
     oci_execute($statement);
 }
diff -pruN 7.2.9-1/ext/oci8/tests/dupcolnames.phpt 7.2.11-3/ext/oci8/tests/dupcolnames.phpt
--- 7.2.9-1/ext/oci8/tests/dupcolnames.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/dupcolnames.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -59,7 +59,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1 - OCI_ASSOC
 array(3) {
   ["C1"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/edition_1.phpt 7.2.11-3/ext/oci8/tests/edition_1.phpt
--- 7.2.9-1/ext/oci8/tests/edition_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/edition_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Basic test for setting Oracle 11gR2 "edition" attribute
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 require(dirname(__FILE__)."/connect.inc");
 if (strcasecmp($user, "system") && strcasecmp($user, "sys")) {
     die("skip needs to be run as a DBA user");
@@ -11,7 +11,7 @@ if ($test_drcp) {
     die("skip as Output might vary with DRCP");
 }
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
-if (!(isset($matches[0]) && 
+if (!(isset($matches[0]) &&
       (($matches[1] == 11 && $matches[2] >= 2) ||
        ($matches[1] >= 12)
        ))) {
@@ -30,11 +30,11 @@ if (!(isset($matches[0]) &&
 
 /* In 11.2, there can only be one child edition.  So this test will
  * fail to create the necessary editions if a child edition exists
- * already 
+ * already
  */
 
 $testuser     = 'testuser_attr_1';  // Used in conn_attr.inc
-$testpassword = 'testuser'; 
+$testpassword = 'testuser';
 
 require(dirname(__FILE__)."/conn_attr.inc");
 
@@ -45,18 +45,18 @@ function select_fn($conn) {
 		var_dump($row);
 	}
 }
-/* Create a editon MYEDITION 
+/* Create a editon MYEDITION
    create a view view_ed in MYEDITION1.
    create the same view 'view_ed' with a different definition in MYEDITION.
    select from both the editions and verify the contents. */
 
 set_edit_attr('MYEDITION');
-$conn = oci_connect($testuser,$testpassword,$dbase); 
+$conn = oci_connect($testuser,$testpassword,$dbase);
 if ($conn === false) {
     $m = oci_error();
     die("Error:" . $m['message']);
 }
-    
+
 $stmtarray = array(
     "drop table edit_tab",
     "create table edit_tab (name varchar2(10),age number,job varchar2(50), salary number)",
@@ -73,7 +73,7 @@ select_fn($conn);
 
 // Create a different version of view_ed in MYEDITION1.
 set_edit_attr('MYEDITION1');
-$conn2 = oci_new_connect($testuser,$testpassword,$dbase); 
+$conn2 = oci_new_connect($testuser,$testpassword,$dbase);
 $stmt = "create or replace editioning view view_ed as select name,age,job,salary from edit_tab";
 $s = oci_parse($conn2, $stmt);
 oci_execute($s);
@@ -83,7 +83,7 @@ get_edit_attr($conn2);
 select_fn($conn2);
 
 // Verify the contents in MYEDITION EDITION.
-echo "version of view_ed in MYEDITION \n";
+echo "version of view_ed in MYEDITION\n";
 get_edit_attr($conn);
 select_fn($conn);
 
@@ -135,7 +135,7 @@ array(4) {
   [3]=>
   string(%d) "100"
 }
-version of view_ed in MYEDITION 
+version of view_ed in MYEDITION
 The value of current EDITION is MYEDITION
 array(3) {
   [0]=>
diff -pruN 7.2.9-1/ext/oci8/tests/edition_2.phpt 7.2.11-3/ext/oci8/tests/edition_2.phpt
--- 7.2.9-1/ext/oci8/tests/edition_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/edition_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -2,14 +2,14 @@
 Set and check Oracle 11gR2 "edition" attribute
 --SKIPIF--
 <?php
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 require(dirname(__FILE__)."/connect.inc");
 if (strcasecmp($user, "system") && strcasecmp($user, "sys"))
     die("skip needs to be run as a DBA user");
 if ($test_drcp)
     die("skip as Output might vary with DRCP");
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
-if (!(isset($matches[0]) && 
+if (!(isset($matches[0]) &&
       (($matches[1] == 11 && $matches[2] >= 2) ||
        ($matches[1] >= 12)
        ))) {
@@ -33,7 +33,7 @@ if (!(isset($matches[0]) &&
  */
 
 $testuser     = 'testuser_ed_2';  // Used in conn_attr.inc
-$testpassword = 'testuser'; 
+$testpassword = 'testuser';
 
 require(dirname(__FILE__)."/conn_attr.inc");
 
@@ -92,7 +92,7 @@ foreach ($values_array as $val ) {
 	if ($c1) {
 		get_edit_attr($c1);
 		oci_close($c1);
-	}	
+	}
 }
 
 echo "\n\n**Test 1.5 - Negative case with an invalid string value. *********\n";
@@ -113,7 +113,7 @@ echo "\n\n**Test 1.7 - Test with ALTER S
 
 set_edit_attr('MYEDITION');
 $c1 = get_conn(3);
-echo "get the value set to MYEDITION with oci_set_edition \n";
+echo "get the value set to MYEDITION with oci_set_edition\n";
 get_edit_attr($c1);
 
 $alter_stmt = "alter session set edition = MYEDITION1";
@@ -123,7 +123,7 @@ oci_commit($c1);
 echo "Get the value set to MYEDITION1 with alter session\n";
 get_edit_attr($c1);
 
-echo " Get the value with a new connection \n";
+echo " Get the value with a new connection\n";
 $c2 = get_conn(1);
 get_edit_attr($c2);
 
@@ -131,7 +131,7 @@ echo " Set the value back using oci-set_
 set_edit_attr('MYEDITION');
 get_edit_attr($c2);
 
-echo " Get the value with a new conenction \n";
+echo " Get the value with a new conenction\n";
 $c3 = get_conn(1);
 get_edit_attr($c3);
 
@@ -225,17 +225,17 @@ The value of current EDITION is MYEDITIO
 **Test 1.7 - Test with ALTER SESSION statement to change the edition *******
  The value of edition has been successfully set
 Testing with oci_new_connect()
-get the value set to MYEDITION with oci_set_edition 
+get the value set to MYEDITION with oci_set_edition
 The value of current EDITION is MYEDITION
 Get the value set to MYEDITION1 with alter session
 The value of current EDITION is MYEDITION1
- Get the value with a new connection 
+ Get the value with a new connection
 Testing with oci_connect()
 The value of current EDITION is MYEDITION
  Set the value back using oci-set_edition
  The value of edition has been successfully set
 The value of current EDITION is MYEDITION
- Get the value with a new conenction 
+ Get the value with a new conenction
 Testing with oci_connect()
 The value of current EDITION is MYEDITION
 
diff -pruN 7.2.9-1/ext/oci8/tests/error2.phpt 7.2.11-3/ext/oci8/tests/error2.phpt
--- 7.2.9-1/ext/oci8/tests/error2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/error2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Exercise error code for SUCCESS_WITH_INFO
 --SKIPIF--
-<?php 
+<?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
diff -pruN 7.2.9-1/ext/oci8/tests/error3.phpt 7.2.11-3/ext/oci8/tests/error3.phpt
--- 7.2.9-1/ext/oci8/tests/error3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/error3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Maximum Oracle error length
 --SKIPIF--
-<?php 
+<?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 // Assume runtime client version is >= compile time client version
@@ -21,11 +21,11 @@ echo "Test 1\n";
 
 error_reporting(E_ALL);
 
-$s = oci_parse($c, "declare 
-s varchar2(4000); 
-begin 
+$s = oci_parse($c, "declare
+s varchar2(4000);
+begin
 s := 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBabcdefghBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC';
-raise_application_error(-20333, s); 
+raise_application_error(-20333, s);
 end;");
 
 oci_execute($s);
diff -pruN 7.2.9-1/ext/oci8/tests/error_bind_2.phpt 7.2.11-3/ext/oci8/tests/error_bind_2.phpt
--- 7.2.9-1/ext/oci8/tests/error_bind_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/error_bind_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Test some more oci_bind_by_name error conditions
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => true);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/error_bind_3.phpt 7.2.11-3/ext/oci8/tests/error_bind_3.phpt
--- 7.2.9-1/ext/oci8/tests/error_bind_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/error_bind_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Test some more oci_bind_by_name error conditions
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => true);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/error_bind.phpt 7.2.11-3/ext/oci8/tests/error_bind.phpt
--- 7.2.9-1/ext/oci8/tests/error_bind.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/error_bind.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -23,7 +23,7 @@ $stmt = oci_parse($c, "insert into bind_
 oci_bind_by_name($stmt, ":name", $name, 10, SQLT_CHR);
 var_dump(oci_execute($stmt));
 
-echo "Test 1 - Assign a resource to the bind variable and execute \n";
+echo "Test 1 - Assign a resource to the bind variable and execute\n";
 $name=$c;
 var_dump(oci_execute($stmt));
 
@@ -50,7 +50,7 @@ echo "Done\n";
 --EXPECTF--
 Insert value
 bool(true)
-Test 1 - Assign a resource to the bind variable and execute 
+Test 1 - Assign a resource to the bind variable and execute
 
 Warning: oci_execute(): Invalid variable used for bind in %s on line %d
 bool(false)
diff -pruN 7.2.9-1/ext/oci8/tests/error_old.phpt 7.2.11-3/ext/oci8/tests/error_old.phpt
--- 7.2.9-1/ext/oci8/tests/error_old.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/error_old.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ ocierror()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs: different error messages from TimesTen
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/error.phpt 7.2.11-3/ext/oci8/tests/error.phpt
--- 7.2.9-1/ext/oci8/tests/error.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/error.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_error() error message for parsing er
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs: different error messages from TimesTen
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/error_set.phpt 7.2.11-3/ext/oci8/tests/error_set.phpt
--- 7.2.9-1/ext/oci8/tests/error_set.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/error_set.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -53,7 +53,7 @@ var_dump($r);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 bool(false)
 24960
diff -pruN 7.2.9-1/ext/oci8/tests/exec_fetch.phpt 7.2.11-3/ext/oci8/tests/exec_fetch.phpt
--- 7.2.9-1/ext/oci8/tests/exec_fetch.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/exec_fetch.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -15,7 +15,7 @@ var_dump(oci_fetch_array($stmt));
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_execute(): ORA-00942: %s in %s on line %d
 bool(false)
 
diff -pruN 7.2.9-1/ext/oci8/tests/execute_mode.phpt 7.2.11-3/ext/oci8/tests/execute_mode.phpt
--- 7.2.9-1/ext/oci8/tests/execute_mode.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/execute_mode.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -14,6 +14,6 @@ oci_execute($stmt, -1);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_execute(): Invalid execute mode given: -1 in %s on line %d
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_all1.phpt 7.2.11-3/ext/oci8/tests/fetch_all1.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_all1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_all1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -45,10 +45,10 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-	
+
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 int(3)
 array(2) {
   ["ID"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_all2.phpt 7.2.11-3/ext/oci8/tests/fetch_all2.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_all2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_all2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,10 +1,10 @@
 --TEST--
-oci_fetch_all() - 2 
+oci_fetch_all() - 2
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -50,7 +50,7 @@ var_dump(oci_fetch_all($s, $all, 0, 1, O
 var_dump($all);
 
 require dirname(__FILE__).'/drop_table.inc';
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_all3.phpt 7.2.11-3/ext/oci8/tests/fetch_all3.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_all3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_all3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -122,10 +122,10 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-    
+
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 None
 int(4)
 array(2) {
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_all4.phpt 7.2.11-3/ext/oci8/tests/fetch_all4.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_all4.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_all4.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -47,7 +47,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 int(0)
 array(2) {
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_all5.phpt 7.2.11-3/ext/oci8/tests/fetch_all5.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_all5.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_all5.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -58,7 +58,7 @@ oci_close($c);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 int(3)
 array(2) {
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_all.phpt 7.2.11-3/ext/oci8/tests/fetch_all.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_all.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_all.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -45,7 +45,7 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-	
+
 echo "Done\n";
 ?>
 --EXPECTF--
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_array.phpt 7.2.11-3/ext/oci8/tests/fetch_array.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_array.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_array.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_fetch_array()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -97,7 +97,7 @@ while ($row = oci_fetch_array($s, OCI_NU
 }
 
 require dirname(__FILE__).'/drop_table.inc';
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_into1.phpt 7.2.11-3/ext/oci8/tests/fetch_into1.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_into1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_into1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ various ocifetchinto() tests
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -58,7 +58,7 @@ var_dump(ocifetchinto($s, $all, OCI_NUM+
 var_dump($all);
 
 require dirname(__FILE__).'/drop_table.inc';
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_into2.phpt 7.2.11-3/ext/oci8/tests/fetch_into2.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_into2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_into2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ ocifetchinto() & wrong number of params
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -46,7 +46,7 @@ var_dump(ocifetchinto($s, $all, 1000000)
 var_dump($all);
 
 require dirname(__FILE__).'/drop_table.inc';
-	
+
 echo "Done\n";
 ?>
 --EXPECTF--
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_into.phpt 7.2.11-3/ext/oci8/tests/fetch_into.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_into.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_into.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -49,7 +49,7 @@ oci8_test_sql_execute($c, $stmtarray);
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 int(2)
 array(2) {
   [0]=>
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_object_1.phpt 7.2.11-3/ext/oci8/tests/fetch_object_1.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_object_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_object_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_fetch_object()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_object.phpt 7.2.11-3/ext/oci8/tests/fetch_object.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_object.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_object.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_fetch_object()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/fetch.phpt 7.2.11-3/ext/oci8/tests/fetch.phpt
--- 7.2.9-1/ext/oci8/tests/fetch.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -43,10 +43,10 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-	
+
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 string(1) "1"
 string(1) "1"
 string(1) "1"
diff -pruN 7.2.9-1/ext/oci8/tests/fetch_row.phpt 7.2.11-3/ext/oci8/tests/fetch_row.phpt
--- 7.2.9-1/ext/oci8/tests/fetch_row.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/fetch_row.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -43,7 +43,7 @@ oci8_test_sql_execute($c, $stmtarray);
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 array(2) {
   [0]=>
   string(1) "1"
diff -pruN 7.2.9-1/ext/oci8/tests/field_funcs_old.phpt 7.2.11-3/ext/oci8/tests/field_funcs_old.phpt
--- 7.2.9-1/ext/oci8/tests/field_funcs_old.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/field_funcs_old.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ ocicolumn*() family
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/field_funcs.phpt 7.2.11-3/ext/oci8/tests/field_funcs.phpt
--- 7.2.9-1/ext/oci8/tests/field_funcs.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/field_funcs.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_field_*() family
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_1.phpt 7.2.11-3/ext/oci8/tests/imp_res_1.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: basic test
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_2.phpt 7.2.11-3/ext/oci8/tests/imp_res_2.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: Zero Rows
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -84,7 +84,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 Test 2
 array(1) {
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_3.phpt 7.2.11-3/ext/oci8/tests/imp_res_3.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: bigger data size
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -82,7 +82,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1  a  1  a  1  a  1  a  1  a
   1  a  1  a  1  a  1  a  2  f
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_4.phpt 7.2.11-3/ext/oci8/tests/imp_res_4.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_4.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_4.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_fetch
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_5.phpt 7.2.11-3/ext/oci8/tests/imp_res_5.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_5.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_5.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_fetch_all
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_6.phpt 7.2.11-3/ext/oci8/tests/imp_res_6.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_6.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_6.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: alternating oci_fetch_* calls
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_7.phpt 7.2.11-3/ext/oci8/tests/imp_res_7.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_7.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_7.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: bigger data size
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -593,7 +593,7 @@ while (($row = oci_fetch_row($s)) != fal
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1
   2
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_call_error.phpt 7.2.11-3/ext/oci8/tests/imp_res_call_error.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_call_error.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_call_error.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: using SQL 'CALL'
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_cancel.phpt 7.2.11-3/ext/oci8/tests/imp_res_cancel.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_cancel.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_cancel.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_cancel
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -57,7 +57,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1
 bool(true)
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_close.phpt 7.2.11-3/ext/oci8/tests/imp_res_close.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_close.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_close.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_free_statement #1
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_cursor.phpt 7.2.11-3/ext/oci8/tests/imp_res_cursor.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_cursor.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_cursor.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: nested cursor
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -87,7 +87,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   X
   1  abcde
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_dbmsoutput.phpt 7.2.11-3/ext/oci8/tests/imp_res_dbmsoutput.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_dbmsoutput.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_dbmsoutput.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: interleaved with DBMS_OUTPUT
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -105,7 +105,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 array(2) {
   [0]=>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_field.phpt 7.2.11-3/ext/oci8/tests/imp_res_field.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_field.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_field.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: field tests
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -126,7 +126,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1 - can't get IRS fields from parent
 num fields : 0
 
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_func_error.phpt 7.2.11-3/ext/oci8/tests/imp_res_func_error.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_func_error.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_func_error.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: test with a PL/SQL function
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_1.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_1.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: basic test
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -90,7 +90,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1  abcde
   2  fghij
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_2.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_2.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: similar to imp_res_get_1 but with unrolled loop
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -96,7 +96,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1  abcde
   2  fghij
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_3.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_3.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: basic test 3
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -82,7 +82,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1  abcde
   2  fghij
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_4.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_4.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_4.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_4.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: interleaved fetches
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_5.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_5.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_5.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_5.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: get from wrong statement
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -27,7 +27,7 @@ function print_row($row)
     echo "\n";
 }
 
-$plsql = 
+$plsql =
     "declare
       c1 sys_refcursor;
     begin
@@ -95,7 +95,7 @@ oci_free_statement($s);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   3
   4
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_all.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_all.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_all.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_all.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: oci_fetch_all
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -59,7 +59,7 @@ while (($s1 = oci_get_implicit_resultset
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 array(1) {
   [1]=>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_cancel.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_cancel.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_cancel.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_cancel.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: oci_cancel
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -48,9 +48,9 @@ while (($s1 = oci_get_implicit_resultset
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1
   3
 ===DONE===
-    
+
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_close_1.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_close_1.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_close_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_close_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: oci_free_statement #1
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -21,7 +21,7 @@ require(dirname(__FILE__).'/connect.inc'
 
 // Initialization
 
-$plsql = 
+$plsql =
     "declare
       c1 sys_refcursor;
     begin
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_close_2.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_close_2.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_close_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_close_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: oci_free_statement #2
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_close_3.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_close_3.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_close_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_close_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: oci_free_statement #3
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -54,7 +54,7 @@ oci_free_statement($s);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1
   2
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_cursor.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_cursor.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_cursor.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_cursor.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: nested cursor
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -89,7 +89,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1  abcde
   2  fghij
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_dbmsoutput.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_dbmsoutput.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_dbmsoutput.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_dbmsoutput.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: interleaved with DBMS_OUTPUT
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -119,7 +119,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 array(3) {
   [0]=>
@@ -153,4 +153,4 @@ array(3) {
   string(6) "Line 3"
 }
 ===DONE===
-    
+
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_exec.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_exec.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_exec.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_exec.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: Execute twice
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -48,7 +48,7 @@ oci_free_statement($s);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
   1
   2
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_get_none.phpt 7.2.11-3/ext/oci8/tests/imp_res_get_none.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_get_none.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_get_none.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: oci_get_implicit_resultset: no implicit results
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -40,7 +40,7 @@ var_dump($s1);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 bool(false)
 ===DONE===
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_insert.phpt 7.2.11-3/ext/oci8/tests/imp_res_insert.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_insert.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_insert.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: Commit modes
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -105,7 +105,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1 - No commit in procedure, OCI_COMMIT_ON_SUCCESS mode
 111
 array(1) {
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_lob.phpt 7.2.11-3/ext/oci8/tests/imp_res_lob.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_lob.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_lob.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: LOBs
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -35,7 +35,7 @@ $stmtarray = array(
       open c1 for select * from imp_res_lob_tab order by 1;
       dbms_sql.return_result(c1);
       open c1 for select * from dual;
-      dbms_sql.return_result(c1); 
+      dbms_sql.return_result(c1);
       open c1 for select c2 from imp_res_lob_tab order by c1;
       dbms_sql.return_result(c1);
    end;"
@@ -50,7 +50,7 @@ $s = oci_parse($c, "begin imp_res_lob_pr
 oci_execute($s);
 while (($row = oci_fetch_row($s)) != false) {
     foreach ($row as $item) {
-        if (is_object($item)) {            
+        if (is_object($item)) {
             echo " " . $item->load();
         } else {
             echo " " . $item;
@@ -64,7 +64,7 @@ $s = oci_parse($c, "begin imp_res_lob_pr
 oci_execute($s);
 $row = oci_fetch_row($s);
 foreach ($row as $item) {
-    if (is_object($item)) {            
+    if (is_object($item)) {
         echo " " . $item->load();
     } else {
         echo " " . $item;
@@ -84,7 +84,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
  1 aaaaa a
  2 bbbbb b
diff -pruN 7.2.9-1/ext/oci8/tests/imp_res_prefetch.phpt 7.2.11-3/ext/oci8/tests/imp_res_prefetch.phpt
--- 7.2.9-1/ext/oci8/tests/imp_res_prefetch.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/imp_res_prefetch.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 Oracle Database 12c Implicit Result Sets: basic test
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
@@ -10,7 +10,7 @@ if (!(isset($matches[0]) && $matches[1]
     die("skip expected output only valid when using Oracle Database 12c or greater");
 }
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 12)) { 
+if (!(isset($matches[0]) && $matches[0] >= 12)) {
     die("skip works only with Oracle 12c or greater version of Oracle client libraries");
 }
 ?>
@@ -83,7 +83,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1 - prefetch 0
 bool(true)
 array(2) {
diff -pruN 7.2.9-1/ext/oci8/tests/ini_1.phpt 7.2.11-3/ext/oci8/tests/ini_1.phpt
--- 7.2.9-1/ext/oci8/tests/ini_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/ini_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,10 +1,10 @@
 --TEST--
 Test OCI8 php.ini settings
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
-if (!(isset($matches[0]) && $matches[0] >= 11)) { 
+if (!(isset($matches[0]) && $matches[0] >= 11)) {
     die("skip works only with Oracle 11g or greater version of Oracle client libraries");
 }
 ?>
@@ -55,7 +55,7 @@ echo 'oci8.old_oci_close_semantics = ' .
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1 - check initialization
 oci8.privileged_connect = 1
 oci8.max_persistent = 111
Binary files 7.2.9-1/ext/oci8/tests/lob_001.phpt and 7.2.11-3/ext/oci8/tests/lob_001.phpt differ
diff -pruN 7.2.9-1/ext/oci8/tests/lob_002.phpt 7.2.11-3/ext/oci8/tests/lob_002.phpt
--- 7.2.9-1/ext/oci8/tests/lob_002.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_002.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_lob_write() and friends (with errors
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -62,13 +62,13 @@ object(OCI-Lob)#%d (1) {
 }
 int(0)
 
-Warning: OCI-Lob::write() expects parameter 2 to be integer, string given in %slob_002.php on line %d
+Warning: OCI-Lob::write() expects parameter 2 to be int%s string given in %slob_002.php on line %d
 NULL
 int(4)
 int(40000)
 int(40004)
 
-Warning: OCI-Lob::seek() expects parameter 1 to be integer, string given in %slob_002.php on line %d
+Warning: OCI-Lob::seek() expects parameter 1 to be int%s string given in %slob_002.php on line %d
 NULL
 bool(false)
 int(40004)
Binary files 7.2.9-1/ext/oci8/tests/lob_003.phpt and 7.2.11-3/ext/oci8/tests/lob_003.phpt differ
diff -pruN 7.2.9-1/ext/oci8/tests/lob_004.phpt 7.2.11-3/ext/oci8/tests/lob_004.phpt
--- 7.2.9-1/ext/oci8/tests/lob_004.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_004.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_seek()/rewind()/append()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_005.phpt 7.2.11-3/ext/oci8/tests/lob_005.phpt
--- 7.2.9-1/ext/oci8/tests/lob_005.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_005.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_is_equal()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
Binary files 7.2.9-1/ext/oci8/tests/lob_006.phpt and 7.2.11-3/ext/oci8/tests/lob_006.phpt differ
diff -pruN 7.2.9-1/ext/oci8/tests/lob_007.phpt 7.2.11-3/ext/oci8/tests/lob_007.phpt
--- 7.2.9-1/ext/oci8/tests/lob_007.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_007.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_write()/size()/load()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_008.phpt 7.2.11-3/ext/oci8/tests/lob_008.phpt
--- 7.2.9-1/ext/oci8/tests/lob_008.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_008.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_write()/read()/eof()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_009.phpt 7.2.11-3/ext/oci8/tests/lob_009.phpt
--- 7.2.9-1/ext/oci8/tests/lob_009.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_009.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_import()/read()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_010.phpt 7.2.11-3/ext/oci8/tests/lob_010.phpt
--- 7.2.9-1/ext/oci8/tests/lob_010.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_010.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_save()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_011.phpt 7.2.11-3/ext/oci8/tests/lob_011.phpt
--- 7.2.9-1/ext/oci8/tests/lob_011.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_011.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_copy()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_012.phpt 7.2.11-3/ext/oci8/tests/lob_012.phpt
--- 7.2.9-1/ext/oci8/tests/lob_012.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_012.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,13 +1,13 @@
 --TEST--
-oci_lob_export() 
+oci_lob_export()
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_013.phpt 7.2.11-3/ext/oci8/tests/lob_013.phpt
--- 7.2.9-1/ext/oci8/tests/lob_013.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_013.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ lob buffering
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_014.phpt 7.2.11-3/ext/oci8/tests/lob_014.phpt
--- 7.2.9-1/ext/oci8/tests/lob_014.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_014.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,13 +1,13 @@
 --TEST--
-oci_lob_free()/close() 
+oci_lob_free()/close()
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_015.phpt 7.2.11-3/ext/oci8/tests/lob_015.phpt
--- 7.2.9-1/ext/oci8/tests/lob_015.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_015.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ various tests with wrong param count
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_016.phpt 7.2.11-3/ext/oci8/tests/lob_016.phpt
--- 7.2.9-1/ext/oci8/tests/lob_016.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_016.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ returning multiple lobs
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 
 $drop = "DROP table lob_test";
diff -pruN 7.2.9-1/ext/oci8/tests/lob_017.phpt 7.2.11-3/ext/oci8/tests/lob_017.phpt
--- 7.2.9-1/ext/oci8/tests/lob_017.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_017.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ returning multiple lobs (using persisten
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 
 $c = oci_pconnect($user, $password, $dbase);
diff -pruN 7.2.9-1/ext/oci8/tests/lob_018.phpt 7.2.11-3/ext/oci8/tests/lob_018.phpt
--- 7.2.9-1/ext/oci8/tests/lob_018.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_018.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ fetching the same lob several times
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require(dirname(__FILE__).'/connect.inc');
 
 // Initialization
@@ -91,7 +91,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 string(4) "data"
 string(9) "long data"
Binary files 7.2.9-1/ext/oci8/tests/lob_019.phpt and 7.2.11-3/ext/oci8/tests/lob_019.phpt differ
Binary files 7.2.9-1/ext/oci8/tests/lob_020.phpt and 7.2.11-3/ext/oci8/tests/lob_020.phpt differ
diff -pruN 7.2.9-1/ext/oci8/tests/lob_021.phpt 7.2.11-3/ext/oci8/tests/lob_021.phpt
--- 7.2.9-1/ext/oci8/tests/lob_021.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_021.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,13 +1,13 @@
 --TEST--
-oci_lob_free()/close() 
+oci_lob_free()/close()
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_022.phpt 7.2.11-3/ext/oci8/tests/lob_022.phpt
--- 7.2.9-1/ext/oci8/tests/lob_022.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_022.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ fetching the same lob several times
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 
 $drop = "DROP table lob_test";
diff -pruN 7.2.9-1/ext/oci8/tests/lob_023.phpt 7.2.11-3/ext/oci8/tests/lob_023.phpt
--- 7.2.9-1/ext/oci8/tests/lob_023.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_023.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_import()/read()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_024.phpt 7.2.11-3/ext/oci8/tests/lob_024.phpt
--- 7.2.9-1/ext/oci8/tests/lob_024.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_024.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_load()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_025.phpt 7.2.11-3/ext/oci8/tests/lob_025.phpt
--- 7.2.9-1/ext/oci8/tests/lob_025.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_025.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_read() tests
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_026.phpt 7.2.11-3/ext/oci8/tests/lob_026.phpt
--- 7.2.9-1/ext/oci8/tests/lob_026.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_026.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_seek()/rewind()/append()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
@@ -73,7 +73,7 @@ NULL
 bool(true)
 int(3)
 
-Warning: oci_lob_seek() expects parameter 1 to be OCI-Lob, integer given in %s on line %d
+Warning: oci_lob_seek() expects parameter 1 to be OCI-Lob, int%sgiven in %s on line %d
 NULL
 bool(true)
 array(2) {
diff -pruN 7.2.9-1/ext/oci8/tests/lob_027.phpt 7.2.11-3/ext/oci8/tests/lob_027.phpt
--- 7.2.9-1/ext/oci8/tests/lob_027.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_027.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_truncate()
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
@@ -46,7 +46,7 @@ for ($i = 5; $i >= 0; $i--) {
 	$row = oci_fetch_array($s);
 	var_dump($row['BLOB']->load());
 	var_dump($row['BLOB']->truncate(($i-1)*10));
-	
+
 	oci_commit($c);
 }
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_028.phpt 7.2.11-3/ext/oci8/tests/lob_028.phpt
--- 7.2.9-1/ext/oci8/tests/lob_028.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_028.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Test descriptor types for oci_new_descri
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_029.phpt 7.2.11-3/ext/oci8/tests/lob_029.phpt
--- 7.2.9-1/ext/oci8/tests/lob_029.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_029.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -89,7 +89,7 @@ oci_execute($s);
 
 echo "Done\n";
 ?>
---EXPECTF-- 
+--EXPECT--
 Test 1. Check how many rows in the table
 array(1) {
   ["NUMROWS"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/lob_030.phpt 7.2.11-3/ext/oci8/tests/lob_030.phpt
--- 7.2.9-1/ext/oci8/tests/lob_030.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_030.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Test piecewise fetch of CLOBs equal to,
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -62,7 +62,7 @@ require dirname(__FILE__).'/drop_table.i
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Test 1: A CLOB with an even number of bytes
 int(1050000)
 Test 2: A CLOB with an odd number of bytes
diff -pruN 7.2.9-1/ext/oci8/tests/lob_031.phpt 7.2.11-3/ext/oci8/tests/lob_031.phpt
--- 7.2.9-1/ext/oci8/tests/lob_031.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_031.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ Test LOB->read(), LOB->seek() and LOB->t
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
@@ -91,7 +91,7 @@ require dirname(__FILE__).'/drop_table.i
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
  1. 3
  2. 6
  3. 9
diff -pruN 7.2.9-1/ext/oci8/tests/lob_032.phpt 7.2.11-3/ext/oci8/tests/lob_032.phpt
--- 7.2.9-1/ext/oci8/tests/lob_032.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_032.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_write() and friends
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_033.phpt 7.2.11-3/ext/oci8/tests/lob_033.phpt
--- 7.2.9-1/ext/oci8/tests/lob_033.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_033.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ various oci_lob_write() error messages
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_034.phpt 7.2.11-3/ext/oci8/tests/lob_034.phpt
--- 7.2.9-1/ext/oci8/tests/lob_034.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_034.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ lob buffering - 2
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_035.phpt 7.2.11-3/ext/oci8/tests/lob_035.phpt
--- 7.2.9-1/ext/oci8/tests/lob_035.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_035.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,13 +1,13 @@
 --TEST--
-oci_lob_copy() - 2 
+oci_lob_copy() - 2
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_036.phpt 7.2.11-3/ext/oci8/tests/lob_036.phpt
--- 7.2.9-1/ext/oci8/tests/lob_036.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_036.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Exercise cleanup code when LOB buffering
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_037.phpt 7.2.11-3/ext/oci8/tests/lob_037.phpt
--- 7.2.9-1/ext/oci8/tests/lob_037.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_037.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Fetching two different lobs and using th
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_038.phpt 7.2.11-3/ext/oci8/tests/lob_038.phpt
--- 7.2.9-1/ext/oci8/tests/lob_038.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_038.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Array fetch CLOB and BLOB
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_039.phpt 7.2.11-3/ext/oci8/tests/lob_039.phpt
--- 7.2.9-1/ext/oci8/tests/lob_039.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_039.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Test CLOB->write() for multiple inserts
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_040.phpt 7.2.11-3/ext/oci8/tests/lob_040.phpt
--- 7.2.9-1/ext/oci8/tests/lob_040.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_040.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Bug #37706 (Test LOB locator reuse. Exte
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -23,7 +23,7 @@ echo "Test 1: CLOB as locator\n";
 $s = oci_parse($c, "select clob from ".$schema.$table_name." order by id");
 oci_execute($s);
 
-$row = array(); 
+$row = array();
 for ($i = 0; $i < NUMLOBS; $i++) {
 	$row[$i] = oci_fetch_array($s, OCI_NUM);
 }
@@ -35,7 +35,7 @@ for ($i = 0; $i < NUMLOBS; $i++) {
 	echo "Pos 2: " . $row[$i][0]->tell() . "\n";
 	echo "Data:  " . $row[$i][0]->read(12) . "\n";
 }
- 
+
 echo "Done\n";
 
 ?>
diff -pruN 7.2.9-1/ext/oci8/tests/lob_041.phpt 7.2.11-3/ext/oci8/tests/lob_041.phpt
--- 7.2.9-1/ext/oci8/tests/lob_041.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_041.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Check LOBS are valid after statement fre
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_042.phpt 7.2.11-3/ext/oci8/tests/lob_042.phpt
--- 7.2.9-1/ext/oci8/tests/lob_042.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_042.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Check various LOB error messages
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -39,9 +39,9 @@ var_dump($blob->import("does_not_exist")
 var_dump($blob->saveFile("does_not_exist"));
 
 require(dirname(__FILE__).'/drop_table.inc');
-						 
+
 echo "Done\n";
-						 
+
 ?>
 --EXPECTF--
 object(OCI-Lob)#%d (1) {
diff -pruN 7.2.9-1/ext/oci8/tests/lob_043.phpt 7.2.11-3/ext/oci8/tests/lob_043.phpt
--- 7.2.9-1/ext/oci8/tests/lob_043.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_043.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -16,7 +16,7 @@ require(dirname(__FILE__).'/connect.inc'
 $stmtarray = array(
 	"drop table lob_043_tab",
 	"create table lob_043_tab(id number, c1 clob)",
-	"begin 
+	"begin
        for i in 1..50000 loop
          insert into lob_043_tab (id, c1) values (i, i || ' abcdefghijklmnopq');
       end loop;
@@ -80,7 +80,7 @@ oci_close($c);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1
 f1 ended
 Test 2
diff -pruN 7.2.9-1/ext/oci8/tests/lob_044.phpt 7.2.11-3/ext/oci8/tests/lob_044.phpt
--- 7.2.9-1/ext/oci8/tests/lob_044.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_044.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ oci_lob_truncate() with default paramete
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require(dirname(__FILE__).'/connect.inc');
 
 // Initialization
@@ -59,7 +59,7 @@ oci8_test_sql_execute($c, $stmtarray);
 ?>
 ===DONE===
 <?php exit(0); ?>
---EXPECTF--
+--EXPECT--
 Test 1 - truncate on insert
 int(72)
 bool(true)
diff -pruN 7.2.9-1/ext/oci8/tests/lob_aliases.phpt 7.2.11-3/ext/oci8/tests/lob_aliases.phpt
--- 7.2.9-1/ext/oci8/tests/lob_aliases.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_aliases.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ LOB method aliases
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/lob_null.phpt 7.2.11-3/ext/oci8/tests/lob_null.phpt
--- 7.2.9-1/ext/oci8/tests/lob_null.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_null.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Test null data for CLOBs
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -18,14 +18,14 @@ $s = oci_parse($c, 'drop table lob_null_
 $s = oci_parse($c, 'create table lob_null_tab (id number, data clob)');
 oci_execute($s);
 
-$s = oci_parse($c, 
+$s = oci_parse($c,
 'create or replace procedure lob_null_proc_in (pid in number, pdata in CLOB)
  as begin
    insert into lob_null_tab (id, data) values (pid, pdata);
  end;');
 oci_execute($s);
 
-$s = oci_parse($c, 
+$s = oci_parse($c,
 'create or replace procedure lob_null_proc_out (pid in number, pdata out clob)
    as begin
      select data into pdata from lob_null_tab where id = pid;
@@ -43,7 +43,7 @@ $r = @oci_execute($s);
 if (!$r) {
     $m = oci_error($s);
     echo $m['message'], "\n";
-}   
+}
 else {
     $lob->close();
 }
@@ -57,7 +57,7 @@ $r = @oci_execute($s);
 if (!$r) {
     $m = oci_error($s);
     echo $m['message'], "\n";
-}   
+}
 else {
     $lob->close();
 }
@@ -71,7 +71,7 @@ $r = @oci_execute($s);
 if (!$r) {
     $m = oci_error($s);
     echo $m['message'], "\n";
-}   
+}
 else {
     $lob->close();
 }
@@ -87,7 +87,7 @@ $r = @oci_execute($s);
 if (!$r) {
     $m = oci_error($s);
     echo $m['message'], "\n";
-}   
+}
 else {
     $lob->close();
 }
@@ -101,7 +101,7 @@ $r = @oci_execute($s);
 if (!$r) {
     $m = oci_error($s);
     echo $m['message'], "\n";
-}   
+}
 else {
     $lob->close();
 }
@@ -115,7 +115,7 @@ $r = @oci_execute($s);
 if (!$r) {
     $m = oci_error($s);
     echo $m['message'], "\n";
-}   
+}
 else {
     $lob->close();
 }
@@ -188,7 +188,7 @@ $s = oci_parse($c, 'drop table lob_null_
 echo "Done\n";
 
 ?>
---EXPECTF-- 
+--EXPECT--
 Temporary CLOB: NULL
 Temporary CLOB: ''
 Temporary CLOB: text
@@ -265,4 +265,4 @@ Fetch via the procedure parameter
 7 is an object: string(0) ""
 8 is an object: string(0) ""
 9 is an object: string(28) "Inserted with RETURNING INTO"
-Done
\ No newline at end of file
+Done
diff -pruN 7.2.9-1/ext/oci8/tests/lob_temp1.phpt 7.2.11-3/ext/oci8/tests/lob_temp1.phpt
--- 7.2.9-1/ext/oci8/tests/lob_temp1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_temp1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ closing temporary lobs
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 
 $blob = oci_new_descriptor($c,OCI_D_LOB);
@@ -25,7 +25,7 @@ var_dump($blob->close());
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 string(4) "test"
 bool(true)
diff -pruN 7.2.9-1/ext/oci8/tests/lob_temp2.phpt 7.2.11-3/ext/oci8/tests/lob_temp2.phpt
--- 7.2.9-1/ext/oci8/tests/lob_temp2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_temp2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Writing temporary lob before binding
 if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -28,7 +28,7 @@ var_dump($res);
 
 ?>
 ===DONE===
---EXPECTF--
+--EXPECT--
 bool(true)
 array(1) {
   ["CLOB"]=>
diff -pruN 7.2.9-1/ext/oci8/tests/lob_temp.phpt 7.2.11-3/ext/oci8/tests/lob_temp.phpt
--- 7.2.9-1/ext/oci8/tests/lob_temp.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/lob_temp.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,10 +4,10 @@ temporary lobs
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 
 $blob = oci_new_descriptor($c,OCI_D_LOB);
@@ -27,7 +27,7 @@ var_dump($blob->read(2));
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 string(4) "test"
 bool(true)
diff -pruN 7.2.9-1/ext/oci8/tests/minfo.phpt 7.2.11-3/ext/oci8/tests/minfo.phpt
--- 7.2.9-1/ext/oci8/tests/minfo.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/minfo.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -15,5 +15,5 @@ if ($r !== 1)
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/null_byte_2.phpt 7.2.11-3/ext/oci8/tests/null_byte_2.phpt
--- 7.2.9-1/ext/oci8/tests/null_byte_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/null_byte_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ Null bytes in SQL statements
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --INI--
 display_errors = On
 error_reporting = E_WARNING
@@ -28,7 +28,7 @@ $s = oci_parse($c, "select * from dual w
 $bv = 1;
 oci_bind_by_name($s, ":bv\0:bv", $bv);
 oci_execute($s);
- 
+
 
 ?>
 ===DONE===
diff -pruN 7.2.9-1/ext/oci8/tests/oci_execute_segfault.phpt 7.2.11-3/ext/oci8/tests/oci_execute_segfault.phpt
--- 7.2.9-1/ext/oci8/tests/oci_execute_segfault.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/oci_execute_segfault.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ oci_execute() segfault after repeated bi
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
diff -pruN 7.2.9-1/ext/oci8/tests/password_2.phpt 7.2.11-3/ext/oci8/tests/password_2.phpt
--- 7.2.9-1/ext/oci8/tests/password_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/password_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,11 +1,11 @@
 --TEST--
 oci_password_change() for persistent connections
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 require(dirname(__FILE__)."/details.inc");
 if (empty($dbase)) die ("skip requires database connection string be set");
-if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user"); 
+if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user");
 if ($test_drcp) die("skip password change not supported in DRCP Mode");
 ?>
 --FILE--
@@ -34,7 +34,7 @@ var_dump($c2);
 $rn2 = (int)$c2;
 
 // Despite using the old password this connect should succeed and return the original resource
-$c3 = oci_pconnect("testuser_pw2", "testuserpwd", $dbase);  
+$c3 = oci_pconnect("testuser_pw2", "testuserpwd", $dbase);
 var_dump($c3);
 $rn3 = (int)$c3;
 
diff -pruN 7.2.9-1/ext/oci8/tests/password.phpt 7.2.11-3/ext/oci8/tests/password.phpt
--- 7.2.9-1/ext/oci8/tests/password.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/password.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,11 +1,11 @@
 --TEST--
 oci_password_change() for non-persistent connections
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
 require(dirname(__FILE__)."/details.inc");
 if (empty($dbase)) die ("skip requires database connection string be set");
-if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user"); 
+if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user");
 if ($test_drcp) die("skip password change not supported in DRCP Mode");
 ?>
 --FILE--
@@ -35,7 +35,7 @@ var_dump($c2);
 $rn2 = (int)$c2;
 
 // Despite using the old password this connect should succeed and return the original resource
-$c3 = oci_connect("testuser_pw", "testuserpwd", $dbase);  
+$c3 = oci_connect("testuser_pw", "testuserpwd", $dbase);
 var_dump($c3);
 $rn3 = (int)$c3;
 
diff -pruN 7.2.9-1/ext/oci8/tests/pecl_bug10194_blob_64.phpt 7.2.11-3/ext/oci8/tests/pecl_bug10194_blob_64.phpt
--- 7.2.9-1/ext/oci8/tests/pecl_bug10194_blob_64.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/pecl_bug10194_blob_64.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
-PECL Bug #10194 (segfault in Instant Client when memory_limit is reached inside the callback) 
+PECL Bug #10194 (segfault in Instant Client when memory_limit is reached inside the callback)
 --SKIPIF--
-<?php 
+<?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on thes
 require(dirname(__FILE__).'/skipif.inc');
 if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
@@ -16,7 +16,7 @@ memory_limit=6M
 <?php
 
 // This test is dependent on the behavior of the memory manager
-    
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
@@ -53,7 +53,7 @@ require dirname(__FILE__).'/drop_table.i
 
 echo "Done\n";
 ?>
---EXPECTF-- 
+--EXPECTF--
 Before load()
 
 Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/pecl_bug10194_blob.phpt 7.2.11-3/ext/oci8/tests/pecl_bug10194_blob.phpt
--- 7.2.9-1/ext/oci8/tests/pecl_bug10194_blob.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/pecl_bug10194_blob.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,5 +1,5 @@
 --TEST--
-PECL Bug #10194 (segfault in Instant Client when memory_limit is reached inside the callback) 
+PECL Bug #10194 (segfault in Instant Client when memory_limit is reached inside the callback)
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
@@ -9,14 +9,14 @@ if (getenv('SKIP_SLOW_TESTS')) die('skip
 if (getenv("USE_ZEND_ALLOC") === "0") {
     die("skip Zend MM disabled");
 }
-?> 
+?>
 --INI--
 memory_limit=3M
 --FILE--
 <?php
 
 // This test is dependent on the behavior of the memory manager
-    
+
 require(dirname(__FILE__).'/connect.inc');
 require(dirname(__FILE__).'/create_table.inc');
 
@@ -52,7 +52,7 @@ require dirname(__FILE__).'/drop_table.i
 
 echo "Done\n";
 ?>
---EXPECTF-- 
+--EXPECTF--
 Before load()
 
 Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/pecl_bug10194.phpt 7.2.11-3/ext/oci8/tests/pecl_bug10194.phpt
--- 7.2.9-1/ext/oci8/tests/pecl_bug10194.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/pecl_bug10194.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,5 +1,5 @@
 --TEST--
-PECL Bug #10194 (segfault in Instant Client when memory_limit is reached inside the callback) 
+PECL Bug #10194 (segfault in Instant Client when memory_limit is reached inside the callback)
 --SKIPIF--
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
@@ -8,12 +8,12 @@ if (getenv('SKIP_SLOW_TESTS')) die('skip
 if (getenv("USE_ZEND_ALLOC") === "0") {
     die("skip Zend MM disabled");
 }
-?> 
+?>
 --INI--
 memory_limit=10M
 --FILE--
 <?php
-	
+
 require dirname(__FILE__).'/connect.inc';
 require dirname(__FILE__).'/create_table.inc';
 
@@ -50,5 +50,5 @@ require dirname(__FILE__).'/drop_table.i
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Fatal error: Allowed memory size of 10485760 bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
diff -pruN 7.2.9-1/ext/oci8/tests/pecl_bug16035.phpt 7.2.11-3/ext/oci8/tests/pecl_bug16035.phpt
--- 7.2.9-1/ext/oci8/tests/pecl_bug16035.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/pecl_bug16035.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,8 +1,8 @@
 --TEST--
 PECL Bug #16035 (Crash with Oracle 10.2 connecting with a character set but ORACLE_HOME is not set)
 --SKIPIF--
-<?php 
-if (!extension_loaded('oci8')) die ("skip no oci8 extension"); 
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
 ob_start();
 phpinfo(INFO_MODULES);
 $phpinfo = ob_get_clean();
diff -pruN 7.2.9-1/ext/oci8/tests/pecl_bug16842.phpt 7.2.11-3/ext/oci8/tests/pecl_bug16842.phpt
--- 7.2.9-1/ext/oci8/tests/pecl_bug16842.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/pecl_bug16842.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ PECL Bug #16842 (NO_DATA_FOUND exception
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --INI--
 error_reporting = E_WARNING
 --FILE--
diff -pruN 7.2.9-1/ext/oci8/tests/pecl_bug8816.phpt 7.2.11-3/ext/oci8/tests/pecl_bug8816.phpt
--- 7.2.9-1/ext/oci8/tests/pecl_bug8816.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/pecl_bug8816.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ PECL Bug #8816 (issue in php_oci_stateme
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
-?> 
+?>
 --FILE--
 <?php
 
@@ -47,8 +47,8 @@ SELECT
   t1.l1, t2.l2
 FROM
 t1, t2
-WHERE 
-t1.id = t2.id 
+WHERE
+t1.id = t2.id
 ORDER BY t1.id ASC
 ";
 
diff -pruN 7.2.9-1/ext/oci8/tests/persistent.phpt 7.2.11-3/ext/oci8/tests/persistent.phpt
--- 7.2.9-1/ext/oci8/tests/persistent.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/persistent.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ reusing persistent connections
 <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
 --FILE--
 <?php
-		
+
 require dirname(__FILE__)."/connect.inc";
 
 var_dump(oci_pconnect($user, $password, $dbase));
@@ -16,7 +16,7 @@ var_dump(oci_connect($user, $password, $
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 resource(%d) of type (oci8 persistent connection)
 resource(%d) of type (oci8 persistent connection)
 resource(%d) of type (oci8 persistent connection)
diff -pruN 7.2.9-1/ext/oci8/tests/prefetch_old.phpt 7.2.11-3/ext/oci8/tests/prefetch_old.phpt
--- 7.2.9-1/ext/oci8/tests/prefetch_old.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/prefetch_old.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -46,7 +46,7 @@ $stmtarray = array(
 );
 
 oci8_test_sql_execute($c, $stmtarray);
-	
+
 echo "Done\n";
 ?>
 --EXPECT--
diff -pruN 7.2.9-1/ext/oci8/tests/privileged_connect1.phpt 7.2.11-3/ext/oci8/tests/privileged_connect1.phpt
--- 7.2.9-1/ext/oci8/tests/privileged_connect1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/privileged_connect1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -6,7 +6,7 @@ privileged connect tests
 oci8.privileged_connect=1
 --FILE--
 <?php
-		
+
 require dirname(__FILE__)."/connect.inc";
 
 oci_connect("", "", "", false, OCI_SYSOPER);
@@ -16,12 +16,12 @@ oci_connect("", "", "", false, "qwe");
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_connect(): ORA-%d: %s in %s on line %d
 
 Warning: oci_connect(): ORA-%d: %s in %s on line %d
 
 Warning: oci_connect(): Invalid session mode specified (-1) in %s on line %d
 
-Warning: oci_connect() expects parameter 5 to be integer, string given in %s on line %d
+Warning: oci_connect() expects parameter 5 to be int%s string given in %s on line %d
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/privileged_connect.phpt 7.2.11-3/ext/oci8/tests/privileged_connect.phpt
--- 7.2.9-1/ext/oci8/tests/privileged_connect.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/privileged_connect.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ privileged connect tests
 <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
 --FILE--
 <?php
-		
+
 require dirname(__FILE__)."/connect.inc";
 
 oci_connect("", "", "", false, OCI_SYSOPER);
@@ -14,12 +14,12 @@ oci_connect("", "", "", false, "qwe");
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 Warning: oci_connect(): Privileged connect is disabled. Enable oci8.privileged_connect to be able to connect as SYSOPER or SYSDBA in %s on line %d
 
 Warning: oci_connect(): Privileged connect is disabled. Enable oci8.privileged_connect to be able to connect as SYSOPER or SYSDBA in %s on line %d
 
 Warning: oci_connect(): Invalid session mode specified (-1) in %s on line %d
 
-Warning: oci_connect() expects parameter 5 to be integer, string given in %s on line %d
+Warning: oci_connect() expects parameter 5 to be int%s string given in %s on line %d
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/refcur_prefetch_1.phpt 7.2.11-3/ext/oci8/tests/refcur_prefetch_1.phpt
--- 7.2.9-1/ext/oci8/tests/refcur_prefetch_1.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/refcur_prefetch_1.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Prefetch with REF cursor. Test different
 if (!extension_loaded('oci8')) die("skip no oci8 extension");
 require(dirname(__FILE__)."/connect.inc");
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
-if (!(isset($matches[0]) && 
+if (!(isset($matches[0]) &&
       ($matches[1] >= 10))) {
        	die("skip expected output only valid when using Oracle 10g or greater database server");
 }
@@ -21,7 +21,7 @@ if (!(isset($matches[0]) &&
 <?php
 require(dirname(__FILE__)."/connect.inc");
 
-// Creates the necessary package and tables. 
+// Creates the necessary package and tables.
 $stmtarray = array(
 	   "DROP TABLE refcurtest",
 	   "CREATE TABLE refcurtest (c1 NUMBER, c2 VARCHAR(20))",
@@ -86,7 +86,7 @@ function fetch_frm_php($c,$cur1,$value)
     echo "Fetch Row from PHP\n";
     var_dump(oci_fetch_row($cur1));
 }
- 
+
 // This function calls the fetch_ref_cur procedure to get the values from the REF cur.
 
 function fetch_frm_plsql($c,$cur1) {
diff -pruN 7.2.9-1/ext/oci8/tests/refcur_prefetch_2.phpt 7.2.11-3/ext/oci8/tests/refcur_prefetch_2.phpt
--- 7.2.9-1/ext/oci8/tests/refcur_prefetch_2.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/refcur_prefetch_2.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Prefetch with REF cursor. Test No 2
 if (!extension_loaded('oci8')) die("skip no oci8 extension");
 require(dirname(__FILE__)."/connect.inc");
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
-if (!(isset($matches[0]) && 
+if (!(isset($matches[0]) &&
       ($matches[1] >= 10))) {
        	die("skip expected output only valid when using Oracle 10g or greater database server");
 }
@@ -21,7 +21,7 @@ if (!(isset($matches[0]) &&
 <?php
 require dirname(__FILE__)."/connect.inc";
 
-// Creates the necessary package and tables. 
+// Creates the necessary package and tables.
 $stmtarray = array(
 	   "DROP TABLE refcurtest",
 	   "CREATE TABLE refcurtest (c1 NUMBER, c2 VARCHAR(20))",
@@ -119,7 +119,7 @@ oci_execute($cur1);
 var_dump(oci_fetch_row($cur1));
 oci_set_prefetch($cur1,5);
 
-// Fetch from PL/SQL 
+// Fetch from PL/SQL
 if (!oci_bind_by_name($s2,":curs1",$cur1,-1,SQLT_RSET)) {
     die("oci_bind_by_name(sql2) failed!\n");
 }
diff -pruN 7.2.9-1/ext/oci8/tests/refcur_prefetch_3.phpt 7.2.11-3/ext/oci8/tests/refcur_prefetch_3.phpt
--- 7.2.9-1/ext/oci8/tests/refcur_prefetch_3.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/refcur_prefetch_3.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -7,7 +7,7 @@ oci8.default_prefetch=5
 if (!extension_loaded('oci8')) die("skip no oci8 extension");
 require(dirname(__FILE__)."/connect.inc");
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
-if (!(isset($matches[0]) && 
+if (!(isset($matches[0]) &&
       (($matches[1] == 11 && $matches[2] >= 2) ||
        ($matches[1] >= 12)
        ))) {
@@ -57,7 +57,7 @@ oci_execute($s);
 $data = oci_fetch_array($s);
 oci_execute($data['CURS1']);
 
-// Calculate round-trips 
+// Calculate round-trips
 $initial_rt = print_roundtrips($c);
 for ($i = 0;$i<10;$i++) {
     echo "Fetch Row using Nested cursor Query\n";
diff -pruN 7.2.9-1/ext/oci8/tests/refcur_prefetch_4.phpt 7.2.11-3/ext/oci8/tests/refcur_prefetch_4.phpt
--- 7.2.9-1/ext/oci8/tests/refcur_prefetch_4.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/refcur_prefetch_4.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Prefetch with REF cursor. Test No 4
 if (!extension_loaded('oci8')) die("skip no oci8 extension");
 require(dirname(__FILE__)."/connect.inc");
 preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
-if (!(isset($matches[0]) && 
+if (!(isset($matches[0]) &&
       ($matches[1] >= 10))) {
        	die("skip expected output only valid when using Oracle 10g or greater database server");
 }
@@ -21,7 +21,7 @@ if (!(isset($matches[0]) &&
 <?php
 require dirname(__FILE__)."/connect.inc";
 
-// Creates the necessary package and tables. 
+// Creates the necessary package and tables.
 $stmtarray = array(
 	   "DROP TABLE refcurtest",
 
@@ -89,7 +89,7 @@ if (!oci_bind_by_name($s2, ":c2", $c2, 2
 
 echo "------Test 1 - Set Prefetch after PL/SQL fetch ----------\n";
 $cur1 = oci_new_cursor($c);
-// Fetch from PL/SQL 
+// Fetch from PL/SQL
 if (!oci_bind_by_name($s2,":curs1",$cur1,-1,SQLT_RSET)) {
     die("oci_bind_by_name(sql2) failed!\n");
 }
diff -pruN 7.2.9-1/ext/oci8/tests/select_null.phpt 7.2.11-3/ext/oci8/tests/select_null.phpt
--- 7.2.9-1/ext/oci8/tests/select_null.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/select_null.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -15,7 +15,7 @@ var_dump(oci_fetch_array($stmt, OCI_RETU
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 array(2) {
   [0]=>
   NULL
diff -pruN 7.2.9-1/ext/oci8/tests/serverversion.phpt 7.2.11-3/ext/oci8/tests/serverversion.phpt
--- 7.2.9-1/ext/oci8/tests/serverversion.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/serverversion.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -13,7 +13,7 @@ if (!empty($dbase)) {
 else {
 	var_dump($c = oci_connect($user, $password));
 }
-	
+
 $v = oci_server_version($c);
 var_dump(str_replace("\n", "", $v));
 
diff -pruN 7.2.9-1/ext/oci8/tests/statement_cache.phpt 7.2.11-3/ext/oci8/tests/statement_cache.phpt
--- 7.2.9-1/ext/oci8/tests/statement_cache.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/statement_cache.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 statement cache
 --SKIPIF--
-<?php 
+<?php
 $target_dbs = array('oracledb' => true, 'timesten' => true);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 ?>
@@ -24,7 +24,7 @@ var_dump(oci_fetch_array($stmt));
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECTF--
 array(2) {
   [0]=>
   string(1) "4"
diff -pruN 7.2.9-1/ext/oci8/tests/statement_type.phpt 7.2.11-3/ext/oci8/tests/statement_type.phpt
--- 7.2.9-1/ext/oci8/tests/statement_type.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/statement_type.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -31,7 +31,7 @@ foreach ($sqls as $sql) {
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 string(6) "SELECT"
 string(6) "DELETE"
 string(6) "INSERT"
diff -pruN 7.2.9-1/ext/oci8/tests/testping.phpt 7.2.11-3/ext/oci8/tests/testping.phpt
--- 7.2.9-1/ext/oci8/tests/testping.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/testping.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -21,5 +21,5 @@ for ($i = 0; $i < 2; $i++) {
 echo "Done\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/uncommitted.phpt 7.2.11-3/ext/oci8/tests/uncommitted.phpt
--- 7.2.9-1/ext/oci8/tests/uncommitted.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/uncommitted.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -4,7 +4,7 @@ uncommitted connection
 <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
 --FILE--
 <?php
-		
+
 require dirname(__FILE__)."/connect.inc";
 
 $stmt = oci_parse($c, "select 1 from dual");
@@ -12,5 +12,5 @@ oci_execute($stmt, OCI_DEFAULT);
 
 echo "Done\n";
 ?>
---EXPECTF--	
+--EXPECT--
 Done
diff -pruN 7.2.9-1/ext/oci8/tests/xmltype_01.phpt 7.2.11-3/ext/oci8/tests/xmltype_01.phpt
--- 7.2.9-1/ext/oci8/tests/xmltype_01.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/xmltype_01.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -1,7 +1,7 @@
 --TEST--
 Basic XMLType test
 --SKIPIF--
-<?php 
+<?php
 if (!extension_loaded("simplexml")) die("skip no simplexml extension");
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
diff -pruN 7.2.9-1/ext/oci8/tests/xmltype_02.phpt 7.2.11-3/ext/oci8/tests/xmltype_02.phpt
--- 7.2.9-1/ext/oci8/tests/xmltype_02.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/oci8/tests/xmltype_02.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -5,7 +5,7 @@ Basic XMLType test #2
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (!extension_loaded("simplexml")) die ("skip no simplexml extension");
-?> 
+?>
 --FILE--
 <?php
 
@@ -48,8 +48,8 @@ $xml =<<<EOF
 EOF;
 
 echo "Test 1 Insert new XML data using a temporary CLOB\n";
-$s = oci_parse($c, 
-    "insert into xmltype_02_tab (warehouse_id, warehouse_spec) 
+$s = oci_parse($c,
+    "insert into xmltype_02_tab (warehouse_id, warehouse_spec)
      values (:id, XMLType(:clob))");
 oci_bind_by_name($s, ':id', $id);
 $lob = oci_new_descriptor($c, OCI_D_LOB);
diff -pruN 7.2.9-1/ext/opcache/Optimizer/sccp.c 7.2.11-3/ext/opcache/Optimizer/sccp.c
--- 7.2.9-1/ext/opcache/Optimizer/sccp.c	2018-08-14 14:26:42.000000000 +0000
+++ 7.2.11-3/ext/opcache/Optimizer/sccp.c	2018-10-09 15:09:50.000000000 +0000
@@ -833,7 +833,8 @@ static inline int ct_eval_func_call(
 	}
 
 	func = zend_hash_find_ptr(CG(function_table), name);
-	if (!func || func->type != ZEND_INTERNAL_FUNCTION) {
+	if (!func || func->type != ZEND_INTERNAL_FUNCTION
+			|| func->internal_function.handler == ZEND_FN(display_disabled_function)) {
 		return FAILURE;
 	}
 
diff -pruN 7.2.9-1/ext/opcache/shared_alloc_win32.c 7.2.11-3/ext/opcache/shared_alloc_win32.c
--- 7.2.9-1/ext/opcache/shared_alloc_win32.c	2018-08-14 14:26:42.000000000 +0000
+++ 7.2.11-3/ext/opcache/shared_alloc_win32.c	2018-10-09 15:09:51.000000000 +0000
@@ -22,6 +22,7 @@
 #include "ZendAccelerator.h"
 #include "zend_shared_alloc.h"
 #include "zend_accelerator_util_funcs.h"
+#include "tsrm_win32.h"
 #include <winbase.h>
 #include <process.h>
 #include <LMCONS.H>
@@ -159,6 +160,12 @@ static int zend_shared_alloc_reattach(si
 		return ALLOC_FAILURE;
 	}
 	fclose(fp);
+
+	if (0 > win32_utime(mmap_base_file, NULL)) {
+		err = GetLastError();
+		zend_win_error_message(ACCEL_LOG_WARNING, mmap_base_file, err);
+	}
+
 	/* Check if the requested address space is free */
 	if (VirtualQuery(wanted_mapping_base, &info, sizeof(info)) == 0 ||
 	    info.State != MEM_FREE ||
diff -pruN 7.2.9-1/ext/opcache/tests/bug76796.phpt 7.2.11-3/ext/opcache/tests/bug76796.phpt
--- 7.2.9-1/ext/opcache/tests/bug76796.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/opcache/tests/bug76796.phpt	2018-10-09 15:09:50.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+Bug #76796: Compile-time evaluation of disabled function in opcache (SCCP) causes segfault
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+disable_functions=strpos
+--FILE--
+<?php
+
+var_dump(strpos('foo', 'bar'));
+
+?>
+--EXPECTF--
+Warning: strpos() has been disabled for security reasons in %s on line %d
+NULL
diff -pruN 7.2.9-1/ext/opcache/ZendAccelerator.c 7.2.11-3/ext/opcache/ZendAccelerator.c
--- 7.2.9-1/ext/opcache/ZendAccelerator.c	2018-08-14 14:26:42.000000000 +0000
+++ 7.2.11-3/ext/opcache/ZendAccelerator.c	2018-10-09 15:09:50.000000000 +0000
@@ -1253,6 +1253,13 @@ static void zend_accel_add_key(char *key
 	}
 }
 
+static zend_always_inline zend_bool is_phar_file(zend_string *filename)
+{
+	return filename && ZSTR_LEN(filename) >= sizeof(".phar") &&
+		!memcmp(ZSTR_VAL(filename) + ZSTR_LEN(filename) - (sizeof(".phar")-1), ".phar", sizeof(".phar")-1) &&
+		!strstr(ZSTR_VAL(filename), "://");
+}
+
 #ifdef HAVE_OPCACHE_FILE_CACHE
 static zend_persistent_script *store_script_in_file_cache(zend_persistent_script *new_persistent_script)
 {
@@ -1277,10 +1284,7 @@ static zend_persistent_script *store_scr
 
 	zend_shared_alloc_destroy_xlat_table();
 
-	new_persistent_script->is_phar =
-		new_persistent_script->script.filename &&
-		strstr(ZSTR_VAL(new_persistent_script->script.filename), ".phar") &&
-		!strstr(ZSTR_VAL(new_persistent_script->script.filename), "://");
+	new_persistent_script->is_phar = is_phar_file(new_persistent_script->script.filename);
 
 	/* Consistency check */
 	if ((char*)new_persistent_script->mem + new_persistent_script->size != (char*)ZCG(mem)) {
@@ -1402,10 +1406,7 @@ static zend_persistent_script *cache_scr
 
 	zend_shared_alloc_destroy_xlat_table();
 
-	new_persistent_script->is_phar =
-		new_persistent_script->script.filename &&
-		strstr(ZSTR_VAL(new_persistent_script->script.filename), ".phar") &&
-		!strstr(ZSTR_VAL(new_persistent_script->script.filename), "://");
+	new_persistent_script->is_phar = is_phar_file(new_persistent_script->script.filename);
 
 	/* Consistency check */
 	if ((char*)new_persistent_script->mem + new_persistent_script->size != (char*)ZCG(mem)) {
diff -pruN 7.2.9-1/ext/openssl/tests/bug76705.pem 7.2.11-3/ext/openssl/tests/bug76705.pem
--- 7.2.9-1/ext/openssl/tests/bug76705.pem	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/openssl/tests/bug76705.pem	2018-10-09 15:09:54.000000000 +0000
@@ -0,0 +1,50 @@
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIJAJCtQJeo8gdyMA0GCSqGSIb3DQEBCwUAMFwxCzAJBgNV
+BAYTAkdCMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQg
+Q29tcGFueSBMdGQxGDAWBgNVBAMMD29wZW5zc2wucGhwLm5ldDAeFw0xODA4MTkx
+ODQxMzdaFw0yODA4MTYxODQxMzdaMFwxCzAJBgNVBAYTAkdCMRUwEwYDVQQHDAxE
+ZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxGDAWBgNV
+BAMMD29wZW5zc2wucGhwLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBALqnJTvXG3o47uPpaJI+rjCfwWAvX8lqUPD05jYCEckYOCQZDze0qAzxJRnl
+dJS4V/sEWgqtroJm+AuasEd7GFhuTWG72eo4Gq8kJHt2+ev68yIfxtOvV4gDcN3w
+9Mkk66q661Jg2oMnWK518VpiQQaNRKQtVkjrLf0DG+WRjx1Y6BFpx8mw699lepfk
+IYhblg1JulmIQ99FnE3xkuJ9gsh74BrBD4CxwBAHk3WFB6nnrMW++4rG1gexOCdB
+fikGALEZDjH5iPjNT1c7Los3CVDldHLTDHHUKEM3w/hp5d2lw67eUpoGrxwbnXF5
+nngdFHe2QJNd5jN2TFICJkcIZb8CAwEAAaNTMFEwHQYDVR0OBBYEFAfXyCoG/LwU
+8eoV8bdp1859DnjCMB8GA1UdIwQYMBaAFAfXyCoG/LwU8eoV8bdp1859DnjCMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBADLZHI4YYvgmKVmtzvow
+kqhljnR14WVeVgr/zfGbRwgeiyokG+BAb0yaNAWO5QYJH8rrx2+1pTq4alAvkoQm
+2mjJu5d4Dfyb7Cmiz8EeITbfZUmX/JZJIOTrXUx5NiIndB6zJf3Bzq2oqeeENW7E
+zKLmBpiOhywoVdzhGTGOxJo7nlXhzkQleQ+N1NgDjIyFSSkKyuXpdUjhD8Pm+/x9
+0oJIU1pcCVFmavjwFmAEPTD+xNiXZDhndWElEmb6q5yJzbPbxQmCwYpNOknQXKRA
++ERVRVyaMmO286CONAhSO2cP9P/Ss7NSt28kXNGux1zSeXsRjMx8ICUqtaG99ZhD
+bdo=
+-----END CERTIFICATE-----
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC6pyU71xt6OO7j
+6WiSPq4wn8FgL1/JalDw9OY2AhHJGDgkGQ83tKgM8SUZ5XSUuFf7BFoKra6CZvgL
+mrBHexhYbk1hu9nqOBqvJCR7dvnr+vMiH8bTr1eIA3Dd8PTJJOuquutSYNqDJ1iu
+dfFaYkEGjUSkLVZI6y39AxvlkY8dWOgRacfJsOvfZXqX5CGIW5YNSbpZiEPfRZxN
+8ZLifYLIe+AawQ+AscAQB5N1hQep56zFvvuKxtYHsTgnQX4pBgCxGQ4x+Yj4zU9X
+Oy6LNwlQ5XRy0wxx1ChDN8P4aeXdpcOu3lKaBq8cG51xeZ54HRR3tkCTXeYzdkxS
+AiZHCGW/AgMBAAECggEBAKTTTyT9uoz+0649gpOKeGYF3Uzj6NFDakCt8tEEmNIc
+6g6udmq5xKDRHfM1VfKyqzbGTAEcCHutFCOjMUGeKQyGMx04NqIHc0DwSKsikGZb
+z/J1Xy21rDU23KeQzYkGann04DN5xdyFlWFSU5R+KW/wtgnI42Y3EABai3r5RAkj
+4s5GzXhKygdcyDbhv+bcllQi3iAIZExjo6rMN+lmkdP90w/Bjvp4hagCqxEoAh7c
+60PVHfSa5oxd4l9/ni0tddtmkaiwEyxVRDDdduGquOtS3tbThCOzoOeXvbhWCjc2
+QmYAymKAe6G2LxmCUTUz6iPxTQPBAT1q2DFuUpBoOwECgYEA8IFZyooC8lO3WJSX
+sPSOKRryO/TKrtWJY2Mh8gZpVlK8OrLZzpv+odPtIpKMvljlNRd0HTonnVrfB7jy
+6MQN8r6Go+Q9Xy0fYUEoPapdzPvfiYx93KqYIFpg2BrZZFOLN3Ptp7kOhej1KJNe
+DCiN2nk1l+Kp1I22ONYLSwR90D8CgYEAxq2bzaNvzkiIWpKucD9P1DJAVw91QJ3t
+Ll/IF4+d6TPxKq7HKq/3FZSBTL49y7QXScryMR6H92syY0Jnax2erq8iVTc+KBqi
+9j85A9LQi50qo/0AY4Fly3GrDENAohvCBt66OLrINbem5J+tY2pJHOWqzljaXzKx
++u7F/YaACoECgYEAgcUpz/F7+YlWasNyvhaXBnL1tYg2PPQXd7sru83d1Kg7zGho
+weTGFkelsnvk2WhZ9LW8/3A7o9o+cYpH93SiGhLXz2L+Anb0caOYtP1SM6LMUQmv
+d/vMrdhWXQTPvCSf/8HbwB5ISdUTQ1uQ6XqQYAv68QNqo7f7VNuZqFa6FD0CgYEA
+tV/GLYv3xNUYjb78uoJB6VDaxd/Zxdymq0BLlZ7JpRyDHNkj/4dWxP+mrp26Il3N
+KNO6GDdsHuZgwJbdfL80nvpJGIxvFQOEI9OBxEjPk7UuOTj+AtkdSgYCBhbbSWKX
+1de9H478uXVoSaywCGL+TgAo12nsKR5JtvAGFbWU7IECgYADfyGWKiRpHUmxn/OH
+9vkiISASRrh3YqdDtqij16pYc+VRC9/jUvGRtYAb7x0j6kO9zh3wkZlUXoPIH+zn
+uBmiIY401DNbWe9rM7IeZOg88+WCLmZ6onMew752O7VUm6VotPOuUvYA5pQRZkma
+aDvX/slF+5i+zgN6JKaqqppzQA==
+-----END PRIVATE KEY-----
diff -pruN 7.2.9-1/ext/openssl/tests/bug76705.phpt 7.2.11-3/ext/openssl/tests/bug76705.phpt
--- 7.2.9-1/ext/openssl/tests/bug76705.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/openssl/tests/bug76705.phpt	2018-10-09 15:09:54.000000000 +0000
@@ -0,0 +1,43 @@
+--TEST--
+Bug #76705: unusable ssl => peer_fingerprint in stream_context_create()
+--SKIPIF--
+<?php
+if (!extension_loaded("openssl")) die("skip openssl not loaded");
+if (!function_exists("proc_open")) die("skip no proc_open");
+?>
+--FILE--
+<?php
+$serverCode = <<<'CODE'
+    $serverUri = "ssl://127.0.0.1:64323";
+    $serverFlags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;
+    $serverCtx = stream_context_create(['ssl' => [
+        'local_cert' => __DIR__ . '/bug76705.pem'
+    ]]);
+
+    $server = stream_socket_server($serverUri, $errno, $errstr, $serverFlags, $serverCtx);
+    phpt_notify();
+
+    @stream_socket_accept($server, 1);
+CODE;
+
+$clientCode = <<<'CODE'
+    $serverUri = "ssl://127.0.0.1:64323";
+    $clientFlags = STREAM_CLIENT_CONNECT;
+    $clientCtx = stream_context_create(['ssl' => [
+        'verify_peer'       => true,
+        'peer_name'         => 'openssl.php.net',
+        'allow_self_signed' => true,
+        'peer_fingerprint'  => [
+            'sha256' => '4A524F3617E41BCCA1370ED9E89C9A7A83C28F0F342C490296D362869BDF1DA8',
+        ]
+    ]]);
+
+    phpt_wait();
+    var_dump(stream_socket_client($serverUri, $errno, $errstr, 2, $clientFlags, $clientCtx));
+CODE;
+
+include 'ServerClientTestCase.inc';
+ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
+?>
+--EXPECTF--
+resource(%d) of type (stream)
diff -pruN 7.2.9-1/ext/openssl/tests/openssl_error_string_basic.phpt 7.2.11-3/ext/openssl/tests/openssl_error_string_basic.phpt
--- 7.2.9-1/ext/openssl/tests/openssl_error_string_basic.phpt	2018-08-14 14:26:46.000000000 +0000
+++ 7.2.11-3/ext/openssl/tests/openssl_error_string_basic.phpt	2018-10-09 15:09:54.000000000 +0000
@@ -7,13 +7,17 @@ openssl_error_string() tests
 // helper function to check openssl errors
 function expect_openssl_errors($name, $expected_error_codes) {
     $expected_errors = array_fill_keys($expected_error_codes, false);
+    $all_errors = array();
     while (($error_string = openssl_error_string()) !== false) {
-        if (strlen($error_string) > 14) {
-            $error_code = substr($error_string, 6, 8);
+	if (preg_match(",.+:([0-9A-F]+):.+,", $error_string, $m) > 0) {
+            $error_code = $m[1];
             if (isset($expected_errors[$error_code])) {
                 $expected_errors[$error_code] = true;
             }
-        }
+	    $all_errors[$error_code] = $error_string;
+        } else {
+		$all_errors[] = $error_string;
+	}
     }
 
     $fail = false;
@@ -26,6 +30,13 @@ function expect_openssl_errors($name, $e
 
     if (!$fail) {
         echo "$name: ok\n";
+    } else {
+	echo "$name: uncaught errors\n";
+	foreach ($all_errors as $code => $str) {
+		if (!isset($expected_errors[$code]) || !$expected_errors[$code]) {
+			echo "\t", $code, ": ", $str, "\n";
+		}
+	}
     }
 }
 
diff -pruN 7.2.9-1/ext/openssl/tests/stream_security_level.phpt 7.2.11-3/ext/openssl/tests/stream_security_level.phpt
--- 7.2.9-1/ext/openssl/tests/stream_security_level.phpt	2018-08-14 14:26:46.000000000 +0000
+++ 7.2.11-3/ext/openssl/tests/stream_security_level.phpt	2018-10-09 15:09:54.000000000 +0000
@@ -5,6 +5,7 @@ security_level setting to prohibit cert
 if (!extension_loaded("openssl")) die("skip openssl not loaded");
 if (OPENSSL_VERSION_NUMBER < 0x10100000) die("skip OpenSSL >= v1.1.0 required");
 if (!function_exists("proc_open")) die("skip no proc_open");
+?>
 --FILE--
 <?php
 $serverCode = <<<'CODE'
@@ -24,7 +25,7 @@ $clientCode = <<<'CODE'
 	$serverUri = "ssl://127.0.0.1:64322";
 	$clientFlags = STREAM_CLIENT_CONNECT;
 	$clientCtx = stream_context_create(['ssl' => [
-		'security_level' => 3,
+		'security_level' => 2,
 		'verify_peer' => true,
 		'cafile' => __DIR__ . '/bug54992-ca.pem',
 		'verify_peer_name' => false
@@ -38,6 +39,7 @@ CODE;
 
 include 'ServerClientTestCase.inc';
 ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
+?>
 --EXPECTF--
 Warning: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
 error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in %s : eval()'d code on line %d
diff -pruN 7.2.9-1/ext/openssl/tests/stream_server_reneg_limit.phpt 7.2.11-3/ext/openssl/tests/stream_server_reneg_limit.phpt
--- 7.2.9-1/ext/openssl/tests/stream_server_reneg_limit.phpt	2018-08-14 14:26:46.000000000 +0000
+++ 7.2.11-3/ext/openssl/tests/stream_server_reneg_limit.phpt	2018-10-09 15:09:54.000000000 +0000
@@ -22,14 +22,18 @@ if(substr(PHP_OS, 0, 3) == 'WIN') {
  */
 
 $serverCode = <<<'CODE'
+    $printed = false;
     $serverUri = "ssl://127.0.0.1:64321";
     $serverFlags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;
     $serverCtx = stream_context_create(['ssl' => [
         'local_cert' => __DIR__ . '/bug54992.pem',
         'reneg_limit' => 0,
         'reneg_window' => 30,
-        'reneg_limit_callback' => function($stream) {
-            var_dump($stream);
+        'reneg_limit_callback' => function($stream) use (&$printed) {
+            if (!$printed) {
+                $printed = true;
+                var_dump($stream);
+            }
         }
     ]]);
 
diff -pruN 7.2.9-1/ext/openssl/xp_ssl.c 7.2.11-3/ext/openssl/xp_ssl.c
--- 7.2.9-1/ext/openssl/xp_ssl.c	2018-08-14 14:26:46.000000000 +0000
+++ 7.2.11-3/ext/openssl/xp_ssl.c	2018-10-09 15:09:54.000000000 +0000
@@ -481,6 +481,7 @@ static zend_bool php_openssl_matches_com
 static int php_openssl_apply_peer_verification_policy(SSL *ssl, X509 *peer, php_stream *stream) /* {{{ */
 {
 	zval *val = NULL;
+	zval *peer_fingerprint;
 	char *peer_name = NULL;
 	int err,
 		must_verify_peer,
@@ -498,6 +499,7 @@ static int php_openssl_apply_peer_verifi
 		: sslsock->is_client;
 
 	must_verify_fingerprint = GET_VER_OPT("peer_fingerprint");
+	peer_fingerprint = val;
 
 	if ((must_verify_peer || must_verify_peer_name || must_verify_fingerprint) && peer == NULL) {
 		php_error_docref(NULL, E_WARNING, "Could not get peer certificate");
@@ -529,8 +531,8 @@ static int php_openssl_apply_peer_verifi
 
 	/* If a peer_fingerprint match is required this trumps peer and peer_name verification */
 	if (must_verify_fingerprint) {
-		if (Z_TYPE_P(val) == IS_STRING || Z_TYPE_P(val) == IS_ARRAY) {
-			if (!php_openssl_x509_fingerprint_match(peer, val)) {
+		if (Z_TYPE_P(peer_fingerprint) == IS_STRING || Z_TYPE_P(peer_fingerprint) == IS_ARRAY) {
+			if (!php_openssl_x509_fingerprint_match(peer, peer_fingerprint)) {
 				php_error_docref(NULL, E_WARNING,
 					"peer_fingerprint match failure"
 				);
diff -pruN 7.2.9-1/ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt 7.2.11-3/ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt
--- 7.2.9-1/ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt	2018-08-14 14:26:46.000000000 +0000
+++ 7.2.11-3/ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt	2018-10-09 15:09:54.000000000 +0000
@@ -162,37 +162,37 @@ try {
 	test_meta($db, 100, 'INT', -2147483648, 'LONG', ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR);
 	test_meta($db, 110, 'INT UNSIGNED', 4294967295, 'LONG', ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR);
 
-	test_meta($db, 120, 'BIGINT', -9223372036854775808, 'LONGLONG', ($is_mysqlnd) ? ((PHP_INT_SIZE == 4) ? PDO::PARAM_STR : PDO::PARAM_INT) : PDO::PARAM_STR);
-	test_meta($db, 130, 'BIGINT UNSIGNED', 18446744073709551615, 'LONGLONG', ($is_mysqlnd) ? ((PHP_INT_SIZE == 4) ? PDO::PARAM_STR : PDO::PARAM_INT) : PDO::PARAM_STR);
+	test_meta($db, 120, 'BIGINT', '-9223372036854775808', 'LONGLONG', ($is_mysqlnd) ? ((PHP_INT_SIZE == 4) ? PDO::PARAM_STR : PDO::PARAM_INT) : PDO::PARAM_STR);
+	test_meta($db, 130, 'BIGINT UNSIGNED', '18446744073709551615', 'LONGLONG', ($is_mysqlnd) ? ((PHP_INT_SIZE == 4) ? PDO::PARAM_STR : PDO::PARAM_INT) : PDO::PARAM_STR);
 
 	test_meta($db, 130, 'REAL', -1.01, ($real_as_float) ? 'FLOAT' : 'DOUBLE', PDO::PARAM_STR);
 	test_meta($db, 140, 'REAL UNSIGNED', 1.01, ($real_as_float) ? 'FLOAT' : 'DOUBLE', PDO::PARAM_STR);
-	test_meta($db, 150, 'REAL ZEROFILL', -1.01, ($real_as_float) ? 'FLOAT' : 'DOUBLE', PDO::PARAM_STR);
+	test_meta($db, 150, 'REAL ZEROFILL', 1.01, ($real_as_float) ? 'FLOAT' : 'DOUBLE', PDO::PARAM_STR);
 	test_meta($db, 160, 'REAL UNSIGNED ZEROFILL', 1.01, ($real_as_float) ? 'FLOAT' : 'DOUBLE', PDO::PARAM_STR);
 
 	test_meta($db, 170, 'DOUBLE', -1.01, 'DOUBLE', PDO::PARAM_STR);
 	test_meta($db, 180, 'DOUBLE UNSIGNED', 1.01, 'DOUBLE', PDO::PARAM_STR);
-	test_meta($db, 190, 'DOUBLE ZEROFILL', -1.01, 'DOUBLE', PDO::PARAM_STR);
+	test_meta($db, 190, 'DOUBLE ZEROFILL', 1.01, 'DOUBLE', PDO::PARAM_STR);
 	test_meta($db, 200, 'DOUBLE UNSIGNED ZEROFILL', 1.01, 'DOUBLE', PDO::PARAM_STR);
 
 	test_meta($db, 210, 'FLOAT', -1.01, 'FLOAT', PDO::PARAM_STR);
 	test_meta($db, 220, 'FLOAT UNSIGNED', 1.01, 'FLOAT', PDO::PARAM_STR);
-	test_meta($db, 230, 'FLOAT ZEROFILL', -1.01, 'FLOAT', PDO::PARAM_STR);
+	test_meta($db, 230, 'FLOAT ZEROFILL', 1.01, 'FLOAT', PDO::PARAM_STR);
 	test_meta($db, 240, 'FLOAT UNSIGNED ZEROFILL', 1.01, 'FLOAT', PDO::PARAM_STR);
 
 	test_meta($db, 250, 'DECIMAL', -1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
 	test_meta($db, 260, 'DECIMAL UNSIGNED', 1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
-	test_meta($db, 270, 'DECIMAL ZEROFILL', -1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
+	test_meta($db, 270, 'DECIMAL ZEROFILL', 1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
 	test_meta($db, 280, 'DECIMAL UNSIGNED ZEROFILL', 1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
 
 	test_meta($db, 290, 'NUMERIC', -1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
 	test_meta($db, 300, 'NUMERIC UNSIGNED', 1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
-	test_meta($db, 310, 'NUMERIC ZEROFILL', -1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
+	test_meta($db, 310, 'NUMERIC ZEROFILL', 1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
 	test_meta($db, 320, 'NUMERIC UNSIGNED ZEROFILL', 1.01, array('DECIMAL', 'NEWDECIMAL'), PDO::PARAM_STR);
 
 	test_meta($db, 330, 'DATE', '2008-04-23', array('DATE', 'NEWDATE'), PDO::PARAM_STR);
 	test_meta($db, 340, 'TIME', '14:37:00', 'TIME', PDO::PARAM_STR);
-	test_meta($db, 350, 'TIMESTAMP', time(), 'TIMESTAMP', PDO::PARAM_STR);
+	test_meta($db, 350, 'TIMESTAMP', '2008-03-23 14:38:00', 'TIMESTAMP', PDO::PARAM_STR);
 	test_meta($db, 360, 'DATETIME', '2008-03-23 14:38:00', 'DATETIME', PDO::PARAM_STR);
 	test_meta($db, 370, 'YEAR', '2008', 'YEAR', ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR);
 
diff -pruN 7.2.9-1/ext/pdo_sqlite/tests/bug70221.phpt 7.2.11-3/ext/pdo_sqlite/tests/bug70221.phpt
--- 7.2.9-1/ext/pdo_sqlite/tests/bug70221.phpt	2018-08-14 14:26:33.000000000 +0000
+++ 7.2.11-3/ext/pdo_sqlite/tests/bug70221.phpt	2018-10-09 15:09:41.000000000 +0000
@@ -12,7 +12,11 @@ function _test() { return 42; }
 $db->sqliteCreateFunction('test', '_test', 0);
 print("Everything is fine, no exceptions here\n");
 unset($db);
-@unlink($dbfile);
+?>
+--CLEAN--
+<?php
+$dbfile = __DIR__ . '/test.sqlite';
+unlink($dbfile);
 ?>
 --EXPECT--
 Everything is fine, no exceptions here
diff -pruN 7.2.9-1/ext/phar/phar.c 7.2.11-3/ext/phar/phar.c
--- 7.2.9-1/ext/phar/phar.c	2018-08-14 14:26:42.000000000 +0000
+++ 7.2.11-3/ext/phar/phar.c	2018-10-09 15:09:50.000000000 +0000
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: 961be29fd3e2f5fe1458eb9c98adde5d37660d26 $ */
+/* $Id: 11c9d270a69dbd9589cbea10a0ad9731a286a147 $ */
 
 #define PHAR_MAIN 1
 #include "phar_internal.h"
@@ -1832,27 +1832,24 @@ static int phar_analyze_path(const char
 /* check for ".phar" in extension */
 static int phar_check_str(const char *fname, const char *ext_str, int ext_len, int executable, int for_create) /* {{{ */
 {
-	char test[51];
 	const char *pos;
 
 	if (ext_len < 0 || ext_len >= 50) {
 		return FAILURE;
 	}
-
 	if (executable == 1) {
-		/* copy "." as well */
-		memcpy(test, ext_str - 1, ext_len + 1);
-		test[ext_len + 1] = '\0';
 		/* executable phars must contain ".phar" as a valid extension (phar://.pharmy/oops is invalid) */
 		/* (phar://hi/there/.phar/oops is also invalid) */
-		pos = strstr(test, ".phar");
+		pos = strstr(ext_str, ".phar");
 
-		if (pos && (*(pos - 1) != '/')
-				&& (pos += 5) && (*pos == '\0' || *pos == '/' || *pos == '.')) {
-			return phar_analyze_path(fname, ext_str, ext_len, for_create);
-		} else {
+		if (!pos
+			|| (pos != ext_str && (*(pos - 1) == '/'))
+			|| (ext_len - (pos - ext_str)) < 5
+			|| !(pos += 5)
+			|| !(*pos == '\0' || *pos == '/' || *pos == '.')) {
 			return FAILURE;
 		}
+		return phar_analyze_path(fname, ext_str, ext_len, for_create);
 	}
 
 	/* data phars need only contain a single non-"." to be valid */
@@ -3540,7 +3537,7 @@ PHP_MINFO_FUNCTION(phar) /* {{{ */
 	php_info_print_table_header(2, "Phar: PHP Archive support", "enabled");
 	php_info_print_table_row(2, "Phar EXT version", PHP_PHAR_VERSION);
 	php_info_print_table_row(2, "Phar API version", PHP_PHAR_API_VERSION);
-	php_info_print_table_row(2, "SVN revision", "$Id: 961be29fd3e2f5fe1458eb9c98adde5d37660d26 $");
+	php_info_print_table_row(2, "SVN revision", "$Id: 11c9d270a69dbd9589cbea10a0ad9731a286a147 $");
 	php_info_print_table_row(2, "Phar-based phar archives", "enabled");
 	php_info_print_table_row(2, "Tar-based phar archives", "enabled");
 	php_info_print_table_row(2, "ZIP-based phar archives", "enabled");
diff -pruN 7.2.9-1/ext/posix/config.m4 7.2.11-3/ext/posix/config.m4
--- 7.2.9-1/ext/posix/config.m4	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/ext/posix/config.m4	2018-10-09 15:09:40.000000000 +0000
@@ -9,7 +9,7 @@ if test "$PHP_POSIX" = "yes"; then
   AC_DEFINE(HAVE_POSIX, 1, [whether to include POSIX-like functions])
   PHP_NEW_EXTENSION(posix, posix.c, $ext_shared)
 
-  AC_CHECK_HEADERS(sys/mkdev.h)
+  AC_CHECK_HEADERS([sys/mkdev.h sys/sysmacros.h])
 
   AC_CHECK_FUNCS(seteuid setegid setsid getsid setpgid getpgid ctermid mkfifo mknod setrlimit getrlimit getlogin getgroups makedev initgroups getpwuid_r getgrgid_r)
 
diff -pruN 7.2.9-1/ext/posix/posix.c 7.2.11-3/ext/posix/posix.c
--- 7.2.9-1/ext/posix/posix.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/ext/posix/posix.c	2018-10-09 15:09:40.000000000 +0000
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: c3261323fa6808fa0c785f00c0741892d57ef0c4 $ */
+/* $Id: 0a764bab332255746424a1e6cfbaaeebab998e4c $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -52,6 +52,9 @@
 #if HAVE_SYS_MKDEV_H
 # include <sys/mkdev.h>
 #endif
+#if HAVE_SYS_SYSMACROS_H
+# include <sys/sysmacros.h>
+#endif
 
 ZEND_DECLARE_MODULE_GLOBALS(posix)
 static PHP_MINFO_FUNCTION(posix);
@@ -321,7 +324,7 @@ const zend_function_entry posix_function
 static PHP_MINFO_FUNCTION(posix)
 {
 	php_info_print_table_start();
-	php_info_print_table_row(2, "Revision", "$Id: c3261323fa6808fa0c785f00c0741892d57ef0c4 $");
+	php_info_print_table_row(2, "Revision", "$Id: 0a764bab332255746424a1e6cfbaaeebab998e4c $");
 	php_info_print_table_end();
 }
 /* }}} */
@@ -1082,9 +1085,15 @@ PHP_FUNCTION(posix_getgrnam)
 		RETURN_FALSE;
 	}
 	buf = emalloc(buflen);
+try_again:
 	g = &gbuf;
 
 	if (getgrnam_r(name, g, buf, buflen, &g) || g == NULL) {
+		if (errno == ERANGE) {
+			buflen *= 2;
+			buf = erealloc(buf, buflen);
+			goto try_again;
+		}
 		POSIX_G(last_error) = errno;
 		efree(buf);
 		RETURN_FALSE;
diff -pruN 7.2.9-1/ext/posix/tests/bug75696.phpt 7.2.11-3/ext/posix/tests/bug75696.phpt
--- 7.2.9-1/ext/posix/tests/bug75696.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/posix/tests/bug75696.phpt	2018-10-09 15:09:40.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+Bug #75696 (posix_getgrnam fails to print details of group)
+--SKIPIF--
+<?php
+if (!extension_loaded('posix')) die('skip posix extension not available');
+?>
+--FILE--
+<?php
+$gid = posix_getgid();
+$name = posix_getgrgid($gid)['name'];
+$info = posix_getgrnam($name);
+var_dump(is_array($info));
+?>
+===DONE===
+--EXPECT--
+bool(true)
+===DONE===
diff -pruN 7.2.9-1/ext/reflection/php_reflection.c 7.2.11-3/ext/reflection/php_reflection.c
--- 7.2.9-1/ext/reflection/php_reflection.c	2018-08-14 14:26:45.000000000 +0000
+++ 7.2.11-3/ext/reflection/php_reflection.c	2018-10-09 15:09:54.000000000 +0000
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: a0d4ebb4a00a610b72686facdf62693a7855fc2b $ */
+/* $Id: 3bd31e48a84f686e08d99aa98943ae42bea65682 $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -3010,8 +3010,10 @@ ZEND_METHOD(reflection_method, __constru
 	switch (Z_TYPE_P(classname)) {
 		case IS_STRING:
 			if ((ce = zend_lookup_class(Z_STR_P(classname))) == NULL) {
-				zend_throw_exception_ex(reflection_exception_ptr, 0,
-						"Class %s does not exist", Z_STRVAL_P(classname));
+				if (!EG(exception)) {
+					zend_throw_exception_ex(reflection_exception_ptr, 0,
+							"Class %s does not exist", Z_STRVAL_P(classname));
+				}
 				if (classname == &ztmp) {
 					zval_dtor(&ztmp);
 				}
@@ -6825,7 +6827,7 @@ PHP_MINFO_FUNCTION(reflection) /* {{{ */
 	php_info_print_table_start();
 	php_info_print_table_header(2, "Reflection", "enabled");
 
-	php_info_print_table_row(2, "Version", "$Id: a0d4ebb4a00a610b72686facdf62693a7855fc2b $");
+	php_info_print_table_row(2, "Version", "$Id: 3bd31e48a84f686e08d99aa98943ae42bea65682 $");
 
 	php_info_print_table_end();
 } /* }}} */
diff -pruN 7.2.9-1/ext/reflection/tests/bug74454.inc 7.2.11-3/ext/reflection/tests/bug74454.inc
--- 7.2.9-1/ext/reflection/tests/bug74454.inc	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/reflection/tests/bug74454.inc	2018-10-09 15:09:53.000000000 +0000
@@ -0,0 +1,4 @@
+<?php
+class A {
+	if (wrongsyntax)
+}
diff -pruN 7.2.9-1/ext/reflection/tests/bug74454.phpt 7.2.11-3/ext/reflection/tests/bug74454.phpt
--- 7.2.9-1/ext/reflection/tests/bug74454.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/reflection/tests/bug74454.phpt	2018-10-09 15:09:53.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+Bug #74454 (Wrong exception being thrown when using ReflectionMethod)
+--FILE--
+<?php
+spl_autoload_register('load_file');
+try {
+	$x = new ReflectionMethod('A', 'b');
+} catch (\Throwable $e) {
+	echo get_class($e), ': ', $e->getMessage(), PHP_EOL;
+}
+
+function load_file() {
+	require __DIR__ . '/bug74454.inc';
+}
+?>
+===DONE===
+--EXPECTF--
+ParseError: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) or const (T_CONST)
+===DONE===
diff -pruN 7.2.9-1/ext/spl/spl_directory.c 7.2.11-3/ext/spl/spl_directory.c
--- 7.2.9-1/ext/spl/spl_directory.c	2018-08-14 14:26:40.000000000 +0000
+++ 7.2.11-3/ext/spl/spl_directory.c	2018-10-09 15:09:48.000000000 +0000
@@ -1245,6 +1245,9 @@ SPL_METHOD(SplFileInfo, getLinkTarget)
 
 	zend_replace_error_handling(EH_THROW, spl_ce_RuntimeException, &error_handling);
 
+	if (intern->file_name == NULL) {
+		spl_filesystem_object_get_file_name(intern);
+	}
 #if defined(PHP_WIN32) || HAVE_SYMLINK
 	if (intern->file_name == NULL) {
 		php_error_docref(NULL, E_WARNING, "Empty filename");
diff -pruN 7.2.9-1/ext/spl/spl_iterators.c 7.2.11-3/ext/spl/spl_iterators.c
--- 7.2.9-1/ext/spl/spl_iterators.c	2018-08-14 14:26:40.000000000 +0000
+++ 7.2.11-3/ext/spl/spl_iterators.c	2018-10-09 15:09:48.000000000 +0000
@@ -2208,7 +2208,7 @@ SPL_METHOD(RegexIterator, getPregFlags)
 	if (intern->u.regex.use_flags) {
 		RETURN_LONG(intern->u.regex.preg_flags);
 	} else {
-		return;
+		RETURN_LONG(0);
 	}
 } /* }}} */
 
diff -pruN 7.2.9-1/ext/spl/tests/bug68175.phpt 7.2.11-3/ext/spl/tests/bug68175.phpt
--- 7.2.9-1/ext/spl/tests/bug68175.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/spl/tests/bug68175.phpt	2018-10-09 15:09:47.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+Bug #68175 (RegexIterator pregFlags are NULL instead of 0)
+--FILE--
+<?php
+$arr = new ArrayIterator(array());
+$regex = new RegexIterator($arr, '/^test/');
+var_dump(
+    $regex->getMode(),
+    $regex->getFlags(),
+    $regex->getPregFlags()
+);
+?>
+===DONE===
+--EXPECT--
+int(0)
+int(0)
+int(0)
+===DONE===
diff -pruN 7.2.9-1/ext/spl/tests/bug68825.phpt 7.2.11-3/ext/spl/tests/bug68825.phpt
--- 7.2.9-1/ext/spl/tests/bug68825.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/spl/tests/bug68825.phpt	2018-10-09 15:09:48.000000000 +0000
@@ -0,0 +1,25 @@
+--TEST--
+Bug #68825 (Exception in DirectoryIterator::getLinkTarget())
+--FILE--
+<?php
+$dir = __DIR__ . '/bug68825';
+mkdir($dir);
+symlink(__FILE__, "$dir/foo");
+
+$di = new \DirectoryIterator($dir);
+foreach ($di as $entry) {
+    if ('foo' === $entry->getFilename()) {
+        var_dump($entry->getLinkTarget());
+    }
+}
+?>
+===DONE===
+--EXPECTF--
+string(%d) "%s%eext%espl%etests%ebug68825.php"
+===DONE===
+--CLEAN--
+<?php
+$dir = __DIR__ . '/bug68825';
+unlink("$dir/foo");
+rmdir($dir);
+?>
diff -pruN 7.2.9-1/ext/standard/array.c 7.2.11-3/ext/standard/array.c
--- 7.2.9-1/ext/standard/array.c	2018-08-14 14:26:37.000000000 +0000
+++ 7.2.11-3/ext/standard/array.c	2018-10-09 15:09:45.000000000 +0000
@@ -5965,14 +5965,13 @@ PHP_FUNCTION(array_reduce)
 	fci.no_separation = 0;
 
 	ZEND_HASH_FOREACH_VAL(htbl, operand) {
-		ZVAL_COPY(&args[0], &result);
+		ZVAL_COPY_VALUE(&args[0], &result);
 		ZVAL_COPY(&args[1], operand);
 		fci.params = args;
 
 		if (zend_call_function(&fci, &fci_cache) == SUCCESS && Z_TYPE(retval) != IS_UNDEF) {
 			zval_ptr_dtor(&args[1]);
 			zval_ptr_dtor(&args[0]);
-			zval_ptr_dtor(&result);
 			ZVAL_COPY_VALUE(&result, &retval);
 		} else {
 			zval_ptr_dtor(&args[1]);
diff -pruN 7.2.9-1/ext/standard/ftp_fopen_wrapper.c 7.2.11-3/ext/standard/ftp_fopen_wrapper.c
--- 7.2.9-1/ext/standard/ftp_fopen_wrapper.c	2018-08-14 14:26:37.000000000 +0000
+++ 7.2.11-3/ext/standard/ftp_fopen_wrapper.c	2018-10-09 15:09:45.000000000 +0000
@@ -428,6 +428,7 @@ php_stream * php_stream_url_wrap_ftp(php
 	int8_t read_write = 0;
 	char *transport;
 	int transport_len;
+	zend_string *error_message = NULL;
 
 	tmp_line[0] = '\0';
 
@@ -555,9 +556,10 @@ php_stream * php_stream_url_wrap_ftp(php
 		hoststart = resource->host;
 	}
 	transport_len = (int)spprintf(&transport, 0, "tcp://%s:%d", hoststart, portno);
-	datastream = php_stream_xport_create(transport, transport_len, REPORT_ERRORS, STREAM_XPORT_CLIENT | STREAM_XPORT_CONNECT, NULL, NULL, context, NULL, NULL);
+	datastream = php_stream_xport_create(transport, transport_len, REPORT_ERRORS, STREAM_XPORT_CLIENT | STREAM_XPORT_CONNECT, NULL, NULL, context, &error_message, NULL);
 	efree(transport);
 	if (datastream == NULL) {
+		tmp_line[0]='\0';
 		goto errexit;
 	}
 
@@ -581,6 +583,7 @@ php_stream * php_stream_url_wrap_ftp(php
 		php_stream_wrapper_log_error(wrapper, options, "Unable to activate SSL mode");
 		php_stream_close(datastream);
 		datastream = NULL;
+		tmp_line[0]='\0';
 		goto errexit;
 	}
 
@@ -600,6 +603,11 @@ errexit:
 	}
 	if (tmp_line[0] != '\0')
 		php_stream_wrapper_log_error(wrapper, options, "FTP server reports %s", tmp_line);
+
+	if (error_message) {
+		php_stream_wrapper_log_error(wrapper, options, "Failed to set up data channel: %s", ZSTR_VAL(error_message));
+		zend_string_release(error_message);
+	}
 	return NULL;
 }
 /* }}} */
diff -pruN 7.2.9-1/ext/standard/tests/array/bug76778.phpt 7.2.11-3/ext/standard/tests/array/bug76778.phpt
--- 7.2.9-1/ext/standard/tests/array/bug76778.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/standard/tests/array/bug76778.phpt	2018-10-09 15:09:43.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+Bug #76778 (array_reduce leaks memory if callback throws exception)
+--FILE--
+<?php
+try {
+    array_reduce(
+        [1],
+        function ($carry, $item) {
+            throw new Exception;
+        },
+        range(1, 3)
+    );
+} catch (Exception $e) {
+}
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff -pruN 7.2.9-1/ext/standard/tests/network/bug74764.phpt 7.2.11-3/ext/standard/tests/network/bug74764.phpt
--- 7.2.9-1/ext/standard/tests/network/bug74764.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/standard/tests/network/bug74764.phpt	2018-10-09 15:09:44.000000000 +0000
@@ -0,0 +1,24 @@
+--TEST--
+Bug #74764 IPv6 bindto fails with stream_socket_client()
+--SKIPIF--
+<?php
+/* following copied straight from the tcp6loop.phpt */
+@stream_socket_client('tcp://[::1]:0', $errno);
+if ($errno != 111) die('skip IPv6 not supported.');
+?>
+--FILE--
+<?php
+$context = stream_context_create(
+    ['socket' => array('bindto' => "[::]:0")]
+    );
+    $socket = stream_socket_client('tcp://localhost:1443', $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context);
+
+$context = stream_context_create(
+    array('socket' => array('bindto' => "0.0.0.0:0"))
+    );
+    $socket = stream_socket_client('tcp://localhost:1443', $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context);
+?>
+--EXPECTF--
+Warning: stream_socket_client(): unable to connect to tcp://localhost:1443 (%s) in %s on line %d
+
+Warning: stream_socket_client(): unable to connect to tcp://localhost:1443 (%s) in %s on line %d
diff -pruN 7.2.9-1/ext/standard/tests/streams/bug73457.phpt 7.2.11-3/ext/standard/tests/streams/bug73457.phpt
--- 7.2.9-1/ext/standard/tests/streams/bug73457.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/standard/tests/streams/bug73457.phpt	2018-10-09 15:09:44.000000000 +0000
@@ -0,0 +1,23 @@
+--TEST--
+Bug #73457. Wrong error message when fopen FTP wrapped fails to open data connection
+--SKIPIF--
+<?php
+if (array_search('ftp',stream_get_wrappers()) === FALSE) die("skip ftp wrapper not available.");
+if (!function_exists('pcntl_fork')) die("skip pcntl_fork() not available.");
+?>
+--FILE--
+<?php
+
+$bug73457=true;
+require __DIR__ . "/../../../ftp/tests/server.inc";
+
+$path="ftp://127.0.0.1:" . $port."/bug73457";
+
+$ds=file_get_contents($path);
+var_dump($ds);
+?>
+==DONE== 
+--EXPECTF--
+Warning: file_get_contents(ftp://127.0.0.1:%d/bug73457): failed to open stream: Failed to set up data channel: Connection refused in %s on line %d
+bool(false)
+==DONE==
diff -pruN 7.2.9-1/ext/standard/tests/streams/stream_socket_enable_crypto.phpt 7.2.11-3/ext/standard/tests/streams/stream_socket_enable_crypto.phpt
--- 7.2.9-1/ext/standard/tests/streams/stream_socket_enable_crypto.phpt	2018-08-14 14:26:36.000000000 +0000
+++ 7.2.11-3/ext/standard/tests/streams/stream_socket_enable_crypto.phpt	2018-10-09 15:09:44.000000000 +0000
@@ -7,9 +7,6 @@ marcosptf - <marcosptf@yahoo.com.br> - #
 if (!extension_loaded('openssl')) {
 	die('skip ext/openssl required');
 }
-if(substr(PHP_OS, 0, 3) == 'WIN' ) {
-	die('skip not for windows');
-}
 ?>
 --FILE--
 <?php
@@ -44,7 +41,7 @@ bool(false)
 Warning: stream_socket_enable_crypto(): When enabling encryption you must specify the crypto type in %s on line %d
 bool(false)
 
-Warning: stream_socket_enable_crypto(): SSL: Broken pipe in %s on line %d
+Warning: stream_socket_enable_crypto(): SSL: %a in %s on line %d
 bool(false)
 
 Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
diff -pruN 7.2.9-1/ext/standard/tests/streams/stream_socket_enable_crypto-win32.phpt 7.2.11-3/ext/standard/tests/streams/stream_socket_enable_crypto-win32.phpt
--- 7.2.9-1/ext/standard/tests/streams/stream_socket_enable_crypto-win32.phpt	2018-08-14 14:26:36.000000000 +0000
+++ 7.2.11-3/ext/standard/tests/streams/stream_socket_enable_crypto-win32.phpt	1970-01-01 00:00:00.000000000 +0000
@@ -1,71 +0,0 @@
---TEST--
-mixed stream_socket_enable_crypto(resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] ) ;
---CREDITS--
-marcosptf - <marcosptf@yahoo.com.br> - #phparty7 - @phpsp - novatec/2015 - sao paulo - br
---SKIPIF--
-<?php
-if (!extension_loaded('openssl')) {
-	die('skip ext openssl required');
-}
-if (substr(PHP_OS, 0, 3) != 'WIN' ) {
-	die('skip windows only test');
-}
-if (OPENSSL_VERSION_NUMBER < 0x10100000) die("skip OpenSSLv1.1.0 required");
-?>
---FILE--
-<?php
-$serverUri = "tcp://127.0.0.1:31854";
-$sock = stream_socket_server($serverUri, $errno, $errstr);
-
-if (is_resource($sock)) {
-  var_dump(stream_socket_enable_crypto($sock, false));
-  var_dump(stream_socket_enable_crypto($sock, true));
-  var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv2_CLIENT));
-  var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT));
-  var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT));  
-  var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_TLS_CLIENT));  
-  var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv2_SERVER));
-  var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv3_SERVER));
-  var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv23_SERVER));
-  var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_TLS_SERVER));
-} else {
-  die("Test stream_socket_enable_crypto has failed; Unable to connect: {$errstr} ({$errno})");
-}
-?>
---CLEAN--
-<?php
-unset($serverUri);
-unset($sock);
-unset($errno);
-unset($errstr);
-?>
---EXPECTF--
-bool(false)
-
-Warning: stream_socket_enable_crypto(): When enabling encryption you must specify the crypto type in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSLv2 unavailable in this PHP version in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSLv3 unavailable %s in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL: The operation completed successfully.
- in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
diff -pruN 7.2.9-1/ext/xml/expat_compat.h 7.2.11-3/ext/xml/expat_compat.h
--- 7.2.9-1/ext/xml/expat_compat.h	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/ext/xml/expat_compat.h	2018-10-09 15:09:40.000000000 +0000
@@ -154,6 +154,7 @@ PHP_XML_API const XML_Char *XML_ExpatVer
 PHP_XML_API void XML_ParserFree(XML_Parser);
 
 #elif defined(HAVE_LIBEXPAT)
+#include "php.h"
 #include <expat.h>
 #endif /* HAVE_LIBEXPAT */
 
diff -pruN 7.2.9-1/ext/zlib/config0.m4 7.2.11-3/ext/zlib/config0.m4
--- 7.2.9-1/ext/zlib/config0.m4	2018-08-14 14:26:42.000000000 +0000
+++ 7.2.11-3/ext/zlib/config0.m4	2018-10-09 15:09:50.000000000 +0000
@@ -3,7 +3,7 @@ dnl $Id$
 dnl
 
 PHP_ARG_WITH(zlib,for ZLIB support,
-[  --with-zlib[=DIR]         Include ZLIB support (requires zlib >= 1.0.9)])
+[  --with-zlib[=DIR]         Include ZLIB support (requires zlib >= 1.2.0.4)])
 
 PHP_ARG_WITH(zlib-dir,if the location of ZLIB install directory is defined,
 [  --with-zlib-dir=<DIR>   Define the location of zlib install directory], no, no)
@@ -33,7 +33,7 @@ if test "$PHP_ZLIB" != "no" || test "$PH
   fi
   
   if test -z "$ZLIB_DIR"; then
-    AC_MSG_ERROR(Cannot find libz)
+    AC_MSG_ERROR(Cannot find zlib)
   fi
 
   case $ZLIB_DIR in
@@ -42,10 +42,10 @@ if test "$PHP_ZLIB" != "no" || test "$PH
   esac
 
   AC_MSG_CHECKING([for zlib version >= 1.2.0.4])
-  ZLIB_VERSION=`$EGREP "define ZLIB_VERSION" $ZLIB_DIR/include/zlib.h | $SED -e 's/[[^0-9\.]]//g'`
+  ZLIB_VERSION=`$EGREP "define ZLIB_VERSION" $ZLIB_INCDIR/zlib.h | $SED -e 's/[[^0-9\.]]//g'`
   AC_MSG_RESULT([$ZLIB_VERSION])
   if test `echo $ZLIB_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*1000000 + $2*10000 + $3*100 + $4}'` -lt 1020004; then
-    AC_MSG_ERROR([libz version greater or equal to 1.2.0.4 required])
+    AC_MSG_ERROR([zlib version greater or equal to 1.2.0.4 required])
   fi
 
   PHP_CHECK_LIBRARY(z, gzgets, [
diff -pruN 7.2.9-1/ext/zlib/tests/bug75273.phpt 7.2.11-3/ext/zlib/tests/bug75273.phpt
--- 7.2.9-1/ext/zlib/tests/bug75273.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/ext/zlib/tests/bug75273.phpt	2018-10-09 15:09:50.000000000 +0000
@@ -0,0 +1,58 @@
+--TEST--
+Bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed)
+--SKIPIF--
+<?php
+if (!extension_loaded('zlib')) die('skip zlib extension not available');
+?>
+--FILE--
+<?php
+function non_repeating_str($len = 8192) {
+	$ret = '';
+	mt_srand(1);
+	$iterations = (int) ($len / 256) + 1;
+	for ($i = 0; $i < $iterations; $i++) {
+		$haves = array();
+		$cnt = 0;
+		while ($cnt < 256) {
+			$j = mt_rand(0, 255);
+			if (!isset($haves[$j])) {
+				$haves[$j] = $j;
+				$cnt++;
+				$ret .= chr($j);
+			}
+		}
+	}
+	return substr($ret, 0, $len);
+}
+
+$base_len = 32768 - 23 /*overhead*/;
+
+$stream = fopen('php://memory', 'rb+');
+
+for ($i = 1; $i <= 8; $i++) {
+	$in_data = non_repeating_str($base_len + $i);
+
+	$deflate_filter = stream_filter_append($stream, 'zlib.deflate',  STREAM_FILTER_WRITE, ['window' => 16 + 15]);
+	rewind($stream);
+	fwrite($stream, $in_data);
+	stream_filter_remove($deflate_filter);
+
+	rewind($stream);
+	$out_data = stream_get_contents($stream);
+	$out_data_len = strlen($out_data);
+
+	$inflate_filter = stream_filter_prepend($stream, 'zlib.inflate',  STREAM_FILTER_WRITE, ['window' => 16 + 15]);
+	rewind($stream);
+	$fwrite_len = fwrite($stream, $out_data);
+	stream_filter_remove($inflate_filter);
+
+	if ($out_data_len !== $fwrite_len) {
+		echo "bug i=$i out_data_len=$out_data_len fwrite_len=$fwrite_len\n";
+	}
+}
+
+fclose($stream);
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff -pruN 7.2.9-1/ext/zlib/zlib_filter.c 7.2.11-3/ext/zlib/zlib_filter.c
--- 7.2.9-1/ext/zlib/zlib_filter.c	2018-08-14 14:26:42.000000000 +0000
+++ 7.2.11-3/ext/zlib/zlib_filter.c	2018-10-09 15:09:50.000000000 +0000
@@ -78,12 +78,7 @@ static php_stream_filter_status_t php_zl
 
 		bucket = php_stream_bucket_make_writeable(buckets_in->head);
 
-		while (bin < (unsigned int) bucket->buflen) {
-
-			if (data->finished) {
-				consumed += bucket->buflen;
-				break;
-			}
+		while (bin < (unsigned int) bucket->buflen && !data->finished) {
 
 			desired = bucket->buflen - bin;
 			if (desired > data->inbuf_len) {
@@ -96,6 +91,7 @@ static php_stream_filter_status_t php_zl
 			if (status == Z_STREAM_END) {
 				inflateEnd(&(data->strm));
 				data->finished = '\1';
+				exit_status = PSFS_PASS_ON;
 			} else if (status != Z_OK) {
 				/* Something bad happened */
 				php_stream_bucket_delref(bucket);
@@ -118,10 +114,6 @@ static php_stream_filter_status_t php_zl
 				data->strm.avail_out = data->outbuf_len;
 				data->strm.next_out = data->outbuf;
 				exit_status = PSFS_PASS_ON;
-			} else if (status == Z_STREAM_END && data->strm.avail_out >= data->outbuf_len) {
-				/* no more data to decompress, and nothing was spat out */
-				php_stream_bucket_delref(bucket);
-				return PSFS_PASS_ON;
 			}
 
 		}
diff -pruN 7.2.9-1/.gitignore 7.2.11-3/.gitignore
--- 7.2.9-1/.gitignore	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/.gitignore	2018-10-09 15:09:36.000000000 +0000
@@ -191,6 +191,7 @@ sapi/fpm/fpm/php-cgi
 sapi/phpdbg/phpdbg_parser.c
 sapi/phpdbg/phpdbg_parser.h
 sapi/phpdbg/phpdbg
+sapi/phpdbg/phpdbg.1
 scripts/php-config
 scripts/phpize
 scripts/man1/*.1
diff -pruN 7.2.9-1/main/network.c 7.2.11-3/main/network.c
--- 7.2.9-1/main/network.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/main/network.c	2018-10-09 15:09:40.000000000 +0000
@@ -851,6 +851,9 @@ php_socket_t php_network_connect_socket_
 				int local_address_len = 0;
 
 				if (sa->sa_family == AF_INET) {
+					if (strchr(bindto,':')) {
+						goto skip_bind;
+					}
 					struct sockaddr_in *in4 = emalloc(sizeof(struct sockaddr_in));
 
 					local_address = (struct sockaddr*)in4;
diff -pruN 7.2.9-1/main/php_config.h.in 7.2.11-3/main/php_config.h.in
--- 7.2.9-1/main/php_config.h.in	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/main/php_config.h.in	2018-10-09 15:09:40.000000000 +0000
@@ -1958,6 +1958,9 @@
 /* Define to 1 if you have the <sys/sysexits.h> header file. */
 #undef HAVE_SYS_SYSEXITS_H
 
+/* Define to 1 if you have the <sys/sysmacros.h> header file. */
+#undef HAVE_SYS_SYSMACROS_H
+
 /* Define to 1 if you have the <sys/times.h> header file. */
 #undef HAVE_SYS_TIMES_H
 
diff -pruN 7.2.9-1/main/php_version.h 7.2.11-3/main/php_version.h
--- 7.2.9-1/main/php_version.h	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/main/php_version.h	2018-10-09 15:09:39.000000000 +0000
@@ -2,7 +2,7 @@
 /* edit configure.ac to change version number */
 #define PHP_MAJOR_VERSION 7
 #define PHP_MINOR_VERSION 2
-#define PHP_RELEASE_VERSION 9
+#define PHP_RELEASE_VERSION 11
 #define PHP_EXTRA_VERSION ""
-#define PHP_VERSION "7.2.9"
-#define PHP_VERSION_ID 70209
+#define PHP_VERSION "7.2.11"
+#define PHP_VERSION_ID 70211
diff -pruN 7.2.9-1/Makefile.global 7.2.11-3/Makefile.global
--- 7.2.9-1/Makefile.global	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/Makefile.global	2018-10-09 15:09:39.000000000 +0000
@@ -121,7 +121,7 @@ distclean: clean
 	rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h main/internal_functions_cli.c main/internal_functions.c stamp-h buildmk.stamp Zend/zend_dtrace_gen.h Zend/zend_dtrace_gen.h.bak Zend/zend_config.h TSRM/tsrm_config.h
 	rm -f php7.spec main/build-defs.h scripts/phpize
 	rm -f ext/date/lib/timelib_config.h ext/mbstring/oniguruma/config.h ext/mbstring/libmbfl/config.h ext/oci8/oci8_dtrace_gen.h ext/oci8/oci8_dtrace_gen.h.bak
-	rm -f scripts/man1/phpize.1 scripts/php-config scripts/man1/php-config.1 sapi/cli/php.1 sapi/cgi/php-cgi.1 ext/phar/phar.1 ext/phar/phar.phar.1
+	rm -f scripts/man1/phpize.1 scripts/php-config scripts/man1/php-config.1 sapi/cli/php.1 sapi/cgi/php-cgi.1 sapi/phpdbg/phpdbg.1 ext/phar/phar.1 ext/phar/phar.phar.1
 	rm -f sapi/fpm/php-fpm.conf sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html
 	rm -f ext/iconv/php_have_bsd_iconv.h ext/iconv/php_have_glibc_iconv.h ext/iconv/php_have_ibm_iconv.h ext/iconv/php_have_iconv.h ext/iconv/php_have_libiconv.h ext/iconv/php_iconv_aliased_libiconv.h ext/iconv/php_iconv_supports_errno.h ext/iconv/php_php_iconv_h_path.h ext/iconv/php_php_iconv_impl.h
 	rm -f ext/phar/phar.phar ext/phar/phar.php
diff -pruN 7.2.9-1/NEWS 7.2.11-3/NEWS
--- 7.2.9-1/NEWS	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/NEWS	2018-10-09 15:09:36.000000000 +0000
@@ -1,5 +1,113 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+11 Oct 2018, PHP 7.2.11
+
+- Core:
+  . Fixed bug #76800 (foreach inconsistent if array modified during loop).
+    (Dmitry)
+  . Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts
+    memory). (Nikita)
+
+- CURL:
+  . Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected).
+    (Pierrick)
+
+- iconv:
+  . Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be).
+    (cmb)
+
+- Opcache:
+  . Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS).
+    (Anatol)
+  . Fixed bug #76796 (Compile-time evaluation of disabled function in opcache
+    causes segfault). (Nikita)
+
+- POSIX:
+  . Fixed bug #75696 (posix_getgrnam fails to print details of group). (cmb)
+
+- Reflection:
+  . Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod).
+    (cmb)
+
+- Standard:
+  . Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open
+    data connection). (Ville Hukkamäki)
+  . Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with 
+    stream_socket_client). (Ville Hukkamäki)
+  . Fixed bug #75533 (array_reduce is slow when $carry is large array).
+    (Manabu Matsui)
+
+- XMLRPC:
+  . Fixed bug #76886 (Can't build xmlrpc with expat). (Thomas Petazzoni, cmb)
+
+- Zlib:
+  . Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed).
+    (Martin Burke, cmb)
+
+13 Sep 2018, PHP 7.2.10
+
+- Core:
+  . Fixed bug #76754 (parent private constant in extends class memory leak).
+    (Laruence)
+  . Fixed bug #72443 (Generate enabled extension). (petk)
+  . Fixed bug #75797 (Memory leak when using class_alias() in non-debug mode).
+    (Massimiliano Braglia)
+
+- Apache2:
+  . Fixed bug #76582 (Apache bucket brigade sometimes becomes invalid). (stas)
+
+- Bz2:
+  . Fixed arginfo for bzcompress. (Tyson Andre)
+
+- gettext:
+  . Fixed bug #76517 (incorrect restoring of LDFLAGS). (sji)
+
+- iconv:
+  . Fixed bug #68180 (iconv_mime_decode can return extra characters in a 
+    header). (cmb)
+  . Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers).
+    (cmb)
+  . Fixed bug #60494 (iconv_mime_decode does ignore special characters). (cmb)
+  . Fixed bug #55146 (iconv_mime_decode_headers() skips some headers). (cmb)
+
+- intl:
+  . Fixed bug #74484 (MessageFormatter::formatMessage memory corruption with
+    11+ named placeholders). (Anatol)
+
+- libxml:
+  . Fixed bug #76777 ("public id" parameter of libxml_set_external_entity_loader
+    callback undefined). (Ville Hukkamäki)
+
+- mbstring:
+  . Fixed bug #76704 (mb_detect_order return value varies based on argument
+    type). (cmb)
+
+- Opcache:
+  . Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar
+    file). (Laruence)
+
+- OpenSSL:
+  . Fixed bug #76705 (unusable ssl => peer_fingerprint in
+    stream_context_create()). (Jakub Zelenka)
+
+- phpdbg:
+  . Fixed bug #76595 (phpdbg man page contains outdated information).
+    (Kevin Abel)
+
+- SPL:
+  . Fixed bug #68825 (Exception in DirectoryIterator::getLinkTarget()). (cmb)
+  . Fixed bug #68175 (RegexIterator pregFlags are NULL instead of 0). (Tim
+    Siebels)
+
+- Standard:
+  . Fixed bug #76778 (array_reduce leaks memory if callback throws exception).
+    (cmb)
+
+- zlib:
+  . Fixed bug #65988 (Zlib version check fails when an include/zlib/ style dir
+    is passed to the --with-zlib configure option). (Jay Bonci)
+  . Fixed bug #76709 (Minimal required zlib library is 1.2.0.4). (petk)
+
 16 Aug 2018, PHP 7.2.9
 
 - Calendar:
diff -pruN 7.2.9-1/sapi/apache2handler/sapi_apache2.c 7.2.11-3/sapi/apache2handler/sapi_apache2.c
--- 7.2.9-1/sapi/apache2handler/sapi_apache2.c	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/sapi/apache2handler/sapi_apache2.c	2018-10-09 15:09:37.000000000 +0000
@@ -712,6 +712,7 @@ zend_first_try {
 	if (!parent_req) {
 		php_apache_request_dtor(r);
 		ctx->request_processed = 1;
+		apr_brigade_cleanup(brigade);
 		bucket = apr_bucket_eos_create(r->connection->bucket_alloc);
 		APR_BRIGADE_INSERT_TAIL(brigade, bucket);
 
diff -pruN 7.2.9-1/sapi/phpdbg/config.m4 7.2.11-3/sapi/phpdbg/config.m4
--- 7.2.9-1/sapi/phpdbg/config.m4	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/sapi/phpdbg/config.m4	2018-10-09 15:09:37.000000000 +0000
@@ -27,17 +27,17 @@ if test "$BUILD_PHPDBG" = "" && test "$P
   if test "$PHP_READLINE" != "no" -o  "$PHP_LIBEDIT" != "no"; then
   	PHPDBG_EXTRA_LIBS="$PHP_READLINE_LIBS"
   fi
-  
+
   PHP_SUBST(PHP_PHPDBG_CFLAGS)
   PHP_SUBST(PHP_PHPDBG_FILES)
   PHP_SUBST(PHPDBG_EXTRA_LIBS)
-  
+
   PHP_ADD_MAKEFILE_FRAGMENT([$abs_srcdir/sapi/phpdbg/Makefile.frag], [$abs_srcdir/sapi/phpdbg], [$abs_builddir/sapi/phpdbg])
   PHP_SELECT_SAPI(phpdbg, program, $PHP_PHPDBG_FILES, $PHP_PHPDBG_CFLAGS, [$(SAPI_PHPDBG_PATH)])
 
   BUILD_BINARY="sapi/phpdbg/phpdbg"
   BUILD_SHARED="sapi/phpdbg/libphpdbg.la"
-  
+
   BUILD_PHPDBG="\$(LIBTOOL) --mode=link \
         \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \
                 \$(PHP_GLOBAL_OBJS) \
@@ -63,6 +63,8 @@ if test "$BUILD_PHPDBG" = "" && test "$P
   PHP_SUBST(BUILD_SHARED)
   PHP_SUBST(BUILD_PHPDBG)
   PHP_SUBST(BUILD_PHPDBG_SHARED)
+
+  PHP_OUTPUT(sapi/phpdbg/phpdbg.1)
 fi
 
 if test "$PHP_PHPDBG_WEBHELPER" != "no"; then
diff -pruN 7.2.9-1/sapi/phpdbg/Makefile.frag 7.2.11-3/sapi/phpdbg/Makefile.frag
--- 7.2.9-1/sapi/phpdbg/Makefile.frag	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/sapi/phpdbg/Makefile.frag	2018-10-09 15:09:36.000000000 +0000
@@ -28,7 +28,7 @@ install-phpdbg: $(BUILD_BINARY)
 	@$(INSTALL) -m 0755 $(BUILD_BINARY) $(INSTALL_ROOT)$(bindir)/$(program_prefix)phpdbg$(program_suffix)$(EXEEXT)
 	@echo "Installing phpdbg man page:       $(INSTALL_ROOT)$(mandir)/man1/"
 	@$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
-	@$(INSTALL_DATA) $(srcdir)/phpdbg.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phpdbg$(program_suffix).1
+	@$(INSTALL_DATA) sapi/phpdbg/phpdbg.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phpdbg$(program_suffix).1
 
 clean-phpdbg:
 	@echo "Cleaning phpdbg object files ..."
diff -pruN 7.2.9-1/sapi/phpdbg/phpdbg.1 7.2.11-3/sapi/phpdbg/phpdbg.1
--- 7.2.9-1/sapi/phpdbg/phpdbg.1	2018-08-14 14:26:29.000000000 +0000
+++ 7.2.11-3/sapi/phpdbg/phpdbg.1	1970-01-01 00:00:00.000000000 +0000
@@ -1,59 +0,0 @@
-.TH PHPDBG 1
-.SH NAME
-phpdbg \- The interactive PHP debugger
-.SH SYNOPSIS
-.B phpdbg
-[OPTION]
-[\fB\-e\fIFILE\fR]
-.SH DESCRIPTION
-.B phpdbg
-a lightweight, powerful, easy to use debugging platform for PHP5.
-.SH OPTIONS
-The following switches are implemented (just like cli SAPI):
-.TP
-.BR \-n
-No \fBphp.ini\fR file will be used
-.TP
-.BR \-c \fIpath\fB|\fIfile\fR
-Look for \fBphp.ini\fR file in the directory \fIpath\fR or use the specified \fIfile\fR
-.TP
-.BR \-z \fIfile\fR
-Load Zend extension \fIfile\fR
-.TP
-.BR \-d \fIfoo\fB[=\fIbar\fB]\fR
-Define INI entry \fIfoo\fR with value \fIbar\fR
-.PP The following switches change the default behaviour of phpdbg:
-.TP
-.BR \-v
-Disables quietness
-.TP
-.BR \-s
-Enabled stepping
-.TP
-.BR -e \fIfile\fR
-Sets execution context
-.TP
-.BR \-b
-Disables use of colour on the console
-.TP
-.BR \-I
-Ignore .phpdbginit (default init file)
-.TP
-.BR \-i \fIpath\fB|\ffile\fR
-Override .phpgdbinit location (implies -I)
-.TP
-.BR \-O \fIfile\fR
-Set oplog output to \fIfile\fR
-.TP
-.BR \-q
-Do not print banner on startup
-.TP
-.BR \-r
-Jump straight to run
-.TP
-.BR \-E
-Enable step through eval()
-.SH NOTES
-Passing -rr will cause phpdbg to quit after execution, rather than returning to the console
-.SH AUTHOR
-Written by Felipe Pena, Joe Watkins and Bob Weinand, formatted by Ondřej Surý for Debian project.
diff -pruN 7.2.9-1/sapi/phpdbg/phpdbg.1.in 7.2.11-3/sapi/phpdbg/phpdbg.1.in
--- 7.2.9-1/sapi/phpdbg/phpdbg.1.in	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/sapi/phpdbg/phpdbg.1.in	2018-10-09 15:09:36.000000000 +0000
@@ -0,0 +1,150 @@
+.TH @program_prefix@phpdbg 1 "2018" "The PHP Group" "Scripting Language"
+.SH NAME
+@program_prefix@phpdbg \- The interactive PHP debugger
+.SH SYNOPSIS
+.B @program_prefix@phpdbg
+[options]
+[\fIfile\fP]
+[\fIargs...\fP]
+.SH DESCRIPTION
+.B phpdbg
+is a lightweight, powerful, easy to use debugging platform for PHP.
+.SH OPTIONS
+.TP 15
+.B \-c \fIpath\fB|\fIfile\fR
+Look for
+.B php.ini
+file in the directory
+.IR path
+or use the specified
+.IR file
+.TP
+.B \-d \fIfoo\fP[=\fIbar\fP]
+Define INI entry
+.IR foo
+with value
+.IR bar
+.TP
+.B \-n
+No
+.B php.ini
+file will be used
+.TP
+.B \-z \fIfile\fR
+Load Zend extension
+.IR file
+.TP
+.BR \-q
+Do not print banner on startup
+.TP
+.B \-v
+Enable oplog output
+.TP
+.B \-b
+Disables use of color on the console
+.TP
+.B \-i \fIpath\fB|\fIfile\fR
+Override .phpgdbinit location (implies -I)
+.TP
+.B \-I
+Ignore .phpdbginit (default init file)
+.TP
+.B \-O \fIfile\fR
+Set oplog output to
+.IR file
+.TP
+.B \-r
+Jump straight to run
+.TP
+.B -e
+Generate extended information for debugger/profiler
+.TP
+.B \-E
+Enable step through eval()
+.TP
+.B \-s \fIdelimiter\fP
+Read code to execute from stdin with an optional
+.IR delimiter
+.TP
+.B \-S \fIsapi_name\fP
+Override SAPI name
+.TP
+.B \-l \fIport\fP
+Setup remote console port
+.TP
+.B \-a \fIaddress\fP
+Setup remote console bind address
+.TP
+.B \-x
+Enable XML output
+.TP
+.B \-p \fIopcode\fP
+Output opcodes and quit
+.TP
+.B \-h
+Print the help overview
+.TP
+.B \-V
+Version number
+.TP
+.IR args.\|.\|.
+Arguments passed to script. Use
+.B '\-\-'
+.IR args
+when first argument starts with
+.B '\-'
+or script is read from stdin
+.SH NOTES
+Passing
+.B \-rr
+will cause
+.B phpdbg
+to quit after execution, rather than returning to the console
+.SH FILES
+.TP 15
+.B php.ini
+The standard configuration file
+.TP
+.B .phpdbginit
+The init file
+.SH SEE ALSO
+The online manual can be found at
+.PD 0
+.P
+.B http://php.net/manual/book.phpdbg.php
+.PD 1
+.SH BUGS
+You can view the list of known bugs or report any new bug you
+found at
+.PD 0
+.P
+.B http://bugs.php.net/
+.PD 1
+.SH AUTHORS
+Written by Felipe Pena, Joe Watkins and Bob Weinand, formatted by Ondřej Surý for Debian project.
+.P
+A List of active developers can be found at
+.PD 0
+.P
+.B http://www.php.net/credits.php
+.PD 1
+.P
+And last but not least PHP was developed with the help of a huge amount of
+contributors all around the world.
+.SH VERSION INFORMATION
+This manpage describes \fBphpdbg\fP, for PHP version @PHP_VERSION@.
+.SH COPYRIGHT
+Copyright \(co 1997\-2018 The PHP Group
+.LP
+This source file is subject to version 3.01 of the PHP license,
+that is bundled with this package in the file LICENSE, and is
+available through the world-wide-web at the following url:
+.PD 0
+.P
+.B http://www.php.net/license/3_01.txt
+.PD 1
+.P
+If you did not receive a copy of the PHP license and are unable to
+obtain it through the world-wide-web, please send a note to
+.B license@php.net
+so we can mail you a copy immediately.
diff -pruN 7.2.9-1/win32/build/confutils.js 7.2.11-3/win32/build/confutils.js
--- 7.2.9-1/win32/build/confutils.js	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/win32/build/confutils.js	2018-10-09 15:09:40.000000000 +0000
@@ -75,6 +75,7 @@ VC_VERSIONS[1912] = 'MSVC15 (Visual C++
 VC_VERSIONS[1913] = 'MSVC15 (Visual C++ 2017)';
 VC_VERSIONS[1914] = 'MSVC15 (Visual C++ 2017)';
 VC_VERSIONS[1915] = 'MSVC15 (Visual C++ 2017)';
+VC_VERSIONS[1916] = 'MSVC15 (Visual C++ 2017)';
 
 var VC_VERSIONS_SHORT = new Array();
 VC_VERSIONS_SHORT[1700] = 'VC11';
@@ -86,6 +87,7 @@ VC_VERSIONS_SHORT[1912] = 'VC15';
 VC_VERSIONS_SHORT[1913] = 'VC15';
 VC_VERSIONS_SHORT[1914] = 'VC15';
 VC_VERSIONS_SHORT[1915] = 'VC15';
+VC_VERSIONS_SHORT[1916] = 'VC15';
 
 if (PROGRAM_FILES == null) {
 	PROGRAM_FILES = "C:\\Program Files";
@@ -3121,6 +3123,11 @@ function toolset_setup_common_cflags()
 						/* Undocumented. */
 						ADD_FLAG('CFLAGS', "/d2guardspecload");
 					}
+				} else if (1900 == VCVERS) {
+					var subver1900 = probe_binary(PHP_CL).substr(6);
+					if (subver1900 >= 24241) {
+						ADD_FLAG('CFLAGS', "/Qspectre");
+					}
 				}
 			}
 			if (VCVERS >= 1900) {
diff -pruN 7.2.9-1/win32/build/mkdist.php 7.2.11-3/win32/build/mkdist.php
--- 7.2.9-1/win32/build/mkdist.php	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/win32/build/mkdist.php	2018-10-09 15:09:40.000000000 +0000
@@ -123,7 +123,11 @@ function get_depends($module)
 			}
 		}
 
-		$per_module_deps[basename($module)][] = $dep;
+		if (!isset($per_module_deps[basename($module)]) || !in_array($dep, $per_module_deps[basename($module)])) {
+			$per_module_deps[basename($module)][] = $dep;
+			//recursively check dll dependencies
+			get_depends($dep);
+		}
 	}
 	fclose($pipes[1]);
 	proc_close($proc);
@@ -335,10 +339,6 @@ Add ADD_DLLS to add extra DLLs like dyna
 deps. For example, libenchant.dll loads libenchant_myspell.dll or
 libenchant_ispell.dll
 */
-$ICU_DLLS = $php_build_dir . '/bin/icu*.dll';
-foreach (glob($ICU_DLLS) as $filename) {
-	copy($filename, "$dist_dir/" . basename($filename));
-}
 $ENCHANT_DLLS = array(
 	array('', 'glib-2.dll'),
 	array('', 'gmodule-2.dll'),
diff -pruN 7.2.9-1/Zend/tests/bug76754.phpt 7.2.11-3/Zend/tests/bug76754.phpt
--- 7.2.9-1/Zend/tests/bug76754.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/Zend/tests/bug76754.phpt	2018-10-09 15:09:37.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+Bug #76754 (parent private constant in extends class memory leak)
+--INI--
+opcache.enable=0
+opcache.enable_cli=0
+--FILE--
+<?php
+
+class FOO
+{
+	private const FOO = 'BAR';
+}
+
+class BAR extends FOO { }
+?>
+okey
+--EXPECT--
+okey
diff -pruN 7.2.9-1/Zend/tests/bug76800.phpt 7.2.11-3/Zend/tests/bug76800.phpt
--- 7.2.9-1/Zend/tests/bug76800.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/Zend/tests/bug76800.phpt	2018-10-09 15:09:37.000000000 +0000
@@ -0,0 +1,13 @@
+--TEST--
+Bug #76800 (foreach inconsistent if array modified during loop)
+--FILE--
+<?php
+$arr = [1 => 1, 3 => 3];           // [1 => 1, 2 => 3] will print both keys
+foreach($arr as $key => &$val) {   // without & will print both keys
+    echo "See key {$key}\n";
+    $arr[0] = 0;                   // without this line will print both keys
+    unset($arr[0]);
+}
+--EXPECT--
+See key 1
+See key 3
diff -pruN 7.2.9-1/Zend/tests/bug76901.phpt 7.2.11-3/Zend/tests/bug76901.phpt
--- 7.2.9-1/Zend/tests/bug76901.phpt	1970-01-01 00:00:00.000000000 +0000
+++ 7.2.11-3/Zend/tests/bug76901.phpt	2018-10-09 15:09:39.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+Bug #76901: method_exists on SPL iterator passthrough method corrupts memory
+--FILE--
+<?php
+
+$it = new ArrayIterator([1, 2, 3]);
+$it = new IteratorIterator($it);
+foreach ($it as $v) {
+    if (method_exists($it, 'offsetGet')) {
+        var_dump($it->offsetGet(0));
+    }
+}
+
+?>
+--EXPECT--
+int(1)
+int(1)
+int(1)
diff -pruN 7.2.9-1/Zend/zend_API.c 7.2.11-3/Zend/zend_API.c
--- 7.2.9-1/Zend/zend_API.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/Zend/zend_API.c	2018-10-09 15:09:39.000000000 +0000
@@ -2774,12 +2774,15 @@ ZEND_API zend_class_entry *zend_register
 ZEND_API int zend_register_class_alias_ex(const char *name, size_t name_len, zend_class_entry *ce) /* {{{ */
 {
 	zend_string *lcname;
+	int persistent;
+
+	persistent = ce->type != ZEND_USER_CLASS;
 
 	if (name[0] == '\\') {
-		lcname = zend_string_alloc(name_len-1, 1);
+		lcname = zend_string_alloc(name_len-1, persistent);
 		zend_str_tolower_copy(ZSTR_VAL(lcname), name+1, name_len-1);
 	} else {
-		lcname = zend_string_alloc(name_len, 1);
+		lcname = zend_string_alloc(name_len, persistent);
 		zend_str_tolower_copy(ZSTR_VAL(lcname), name, name_len);
 	}
 
diff -pruN 7.2.9-1/Zend/zend_builtin_functions.c 7.2.11-3/Zend/zend_builtin_functions.c
--- 7.2.9-1/Zend/zend_builtin_functions.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/Zend/zend_builtin_functions.c	2018-10-09 15:09:39.000000000 +0000
@@ -1294,13 +1294,10 @@ ZEND_FUNCTION(method_exists)
 	if (zend_hash_exists(&ce->function_table, lcname)) {
 		zend_string_release(lcname);
 		RETURN_TRUE;
-	} else {
-		union _zend_function *func = NULL;
-
-		if (Z_TYPE_P(klass) == IS_OBJECT
-		&& Z_OBJ_HT_P(klass)->get_method != NULL
-		&& (func = Z_OBJ_HT_P(klass)->get_method(&Z_OBJ_P(klass), method_name, NULL)) != NULL
-		) {
+	} else if (Z_TYPE_P(klass) == IS_OBJECT && Z_OBJ_HT_P(klass)->get_method != NULL) {
+		zend_object *obj = Z_OBJ_P(klass);
+		zend_function *func = Z_OBJ_HT_P(klass)->get_method(&obj, method_name, NULL);
+		if (func != NULL) {
 			if (func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
 				/* Returns true to the fake Closure's __invoke */
 				RETVAL_BOOL(func->common.scope == zend_ce_closure
diff -pruN 7.2.9-1/Zend/zend_hash.c 7.2.11-3/Zend/zend_hash.c
--- 7.2.9-1/Zend/zend_hash.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/Zend/zend_hash.c	2018-10-09 15:09:39.000000000 +0000
@@ -932,9 +932,11 @@ ZEND_API int ZEND_FASTCALL zend_hash_reh
 							if (UNEXPECTED(ht->nInternalPointer == i)) {
 								ht->nInternalPointer = j;
 							}
-							if (UNEXPECTED(i == iter_pos)) {
-								zend_hash_iterators_update(ht, i, j);
-								iter_pos = zend_hash_iterators_lower_pos(ht, iter_pos + 1);
+							if (UNEXPECTED(i >= iter_pos)) {
+								do {
+									zend_hash_iterators_update(ht, iter_pos, j);
+									iter_pos = zend_hash_iterators_lower_pos(ht, iter_pos + 1);
+								} while (iter_pos < i);
 							}
 							q++;
 							j++;
diff -pruN 7.2.9-1/Zend/zend_inheritance.c 7.2.11-3/Zend/zend_inheritance.c
--- 7.2.9-1/Zend/zend_inheritance.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/Zend/zend_inheritance.c	2018-10-09 15:09:39.000000000 +0000
@@ -1210,9 +1210,14 @@ static void zend_add_trait_method(zend_c
 	}
 
 	function_add_ref(fn);
-	new_fn = zend_arena_alloc(&CG(arena), sizeof(zend_op_array));
-	memcpy(new_fn, fn, sizeof(zend_op_array));
-	new_fn->common.fn_flags |= ZEND_ACC_ARENA_ALLOCATED;
+	if (UNEXPECTED(fn->type == ZEND_INTERNAL_FUNCTION)) {
+		new_fn = zend_arena_alloc(&CG(arena), sizeof(zend_internal_function));
+		memcpy(new_fn, fn, sizeof(zend_internal_function));
+		new_fn->common.fn_flags |= ZEND_ACC_ARENA_ALLOCATED;
+	} else {
+		new_fn = zend_arena_alloc(&CG(arena), sizeof(zend_op_array));
+		memcpy(new_fn, fn, sizeof(zend_op_array));
+	}
 	fn = zend_hash_update_ptr(&ce->function_table, key, new_fn);
 	zend_add_magic_methods(ce, key, fn);
 }
diff -pruN 7.2.9-1/Zend/zend_opcode.c 7.2.11-3/Zend/zend_opcode.c
--- 7.2.9-1/Zend/zend_opcode.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/Zend/zend_opcode.c	2018-10-09 15:09:39.000000000 +0000
@@ -297,8 +297,8 @@ ZEND_API void destroy_zend_class(zval *z
 						}
 					}
 				} ZEND_HASH_FOREACH_END();
-				zend_hash_destroy(&ce->constants_table);
 			}
+			zend_hash_destroy(&ce->constants_table);
 			if (ce->num_interfaces > 0 && ce->interfaces) {
 				efree(ce->interfaces);
 			}
diff -pruN 7.2.9-1/Zend/zend_operators.c 7.2.11-3/Zend/zend_operators.c
--- 7.2.9-1/Zend/zend_operators.c	2018-08-14 14:26:32.000000000 +0000
+++ 7.2.11-3/Zend/zend_operators.c	2018-10-09 15:09:39.000000000 +0000
@@ -3108,7 +3108,7 @@ ZEND_API zend_long ZEND_FASTCALL zend_dv
 	if (dmod < 0) {
 		/* we're going to make this number positive; call ceil()
 		 * to simulate rounding towards 0 of the negative number */
-		dmod = ceil(dmod);// + two_pow_32;
+		dmod = ceil(dmod) + two_pow_32;
 	}
 	return (zend_long)(zend_ulong)dmod;
 }
