]> granicus.if.org Git - php/commitdiff
Move dtor before memory freed to avoid invalid read
authorAdam Baratz <adambaratz@php.net>
Wed, 21 Sep 2016 16:00:19 +0000 (12:00 -0400)
committerAdam Baratz <adambaratz@php.net>
Wed, 21 Sep 2016 16:00:19 +0000 (12:00 -0400)
ext/pdo_dblib/dblib_driver.c

index 3e0529fa1d795fa2d9276fe0c4c6891a1daa0935..b8ec4fb48e27bd66849f3c6219719fc6297ac58f 100644 (file)
@@ -83,6 +83,7 @@ static int dblib_handle_closer(pdo_dbh_t *dbh)
        pdo_dblib_db_handle *H = (pdo_dblib_db_handle *)dbh->driver_data;
 
        if (H) {
+               pdo_dblib_err_dtor(&H->err);
                if (H->link) {
                        dbclose(H->link);
                        H->link = NULL;
@@ -93,7 +94,6 @@ static int dblib_handle_closer(pdo_dbh_t *dbh)
                }
                pefree(H, dbh->is_persistent);
                dbh->driver_data = NULL;
-               pdo_dblib_err_dtor(&H->err);
        }
        return 0;
 }