fix resetting cursor data if dba_firstkey failed
authorAnatol Belski <ab@php.net>
Sun, 28 May 2017 16:59:15 +0000 (18:59 +0200)
committerAnatol Belski <ab@php.net>
Sun, 28 May 2017 17:30:29 +0000 (19:30 +0200)
better symbol check

fix config.m4

ext/dba/config.m4
ext/dba/dba_lmdb.c

index a8bd561c50381b3a11c62b6d91f34609d3709afb..2a99c2a100509f578b328293547bfa095f1a8009 100644 (file)
@@ -245,7 +245,7 @@ if test "$PHP_LMDB" != "no"; then
 
   if test -n "$THIS_INCLUDE"; then
        for LIB in lmdb; do
-         PHP_CHECK_LIBRARY($LIB, mdb_open, [
+         PHP_CHECK_LIBRARY($LIB, mdb_env_open, [
                AC_DEFINE_UNQUOTED(LMDB_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
                AC_DEFINE(DBA_LMDB, 1, [ ])
                THIS_LIBS=$LIB
@@ -663,7 +663,7 @@ if test "$HAVE_DBA" = "1"; then
     AC_MSG_RESULT([yes])
   fi
   AC_DEFINE(HAVE_DBA, 1, [ ])
-  PHP_NEW_EXTENSION(dba, dba.c dba_cdb.c dba_dbm.c dba_gdbm.c dba_ndbm.c dba_db1.c dba_db2.c dba_db3.c dba_db4.c dba_flatfile.c dba_inifile.c dba_qdbm.c dba_tcadb.c $cdb_sources $flat_sources $ini_sources, $ext_shared)
+  PHP_NEW_EXTENSION(dba, dba.c dba_cdb.c dba_dbm.c dba_gdbm.c dba_ndbm.c dba_db1.c dba_db2.c dba_db3.c dba_db4.c dba_flatfile.c dba_inifile.c dba_qdbm.c dba_tcadb.c dba_lmdb.c $cdb_sources $flat_sources $ini_sources, $ext_shared)
   PHP_ADD_BUILD_DIR($ext_builddir/libinifile)
   PHP_ADD_BUILD_DIR($ext_builddir/libcdb)
   PHP_ADD_BUILD_DIR($ext_builddir/libflatfile)
index 91f42e1a76e44e4f24953f783d0e951e12060aed..6f7d2da21b4c320e7a51d0fd9f8859591f21da4a 100644 (file)
@@ -269,6 +269,7 @@ DBA_FIRSTKEY_FUNC(lmdb)
        if (rc) {
                mdb_txn_abort(LMDB_IT(txn));
                mdb_cursor_close(LMDB_IT(cur));
+               LMDB_IT(cur) = NULL;
                if (MDB_NOTFOUND != rc) {
                        php_error_docref0(NULL, E_WARNING, "%s", mdb_strerror(rc));
                }