]> granicus.if.org Git - python/commitdiff
Fix for Issue2515: Don't crash when trying to fetch data from a closed cursor.
authorGerhard Häring <gh@ghaering.de>
Sun, 6 Apr 2008 11:05:24 +0000 (11:05 +0000)
committerGerhard Häring <gh@ghaering.de>
Sun, 6 Apr 2008 11:05:24 +0000 (11:05 +0000)
Modules/_sqlite/cursor.c

index 91d8f74eef4af018f5428e8e8cb6089016b1c6c8..ed5e652ebb048ff8197e8ba17bc2bde24782fc8c 100644 (file)
@@ -851,15 +851,17 @@ PyObject* cursor_iternext(Cursor *self)
         next_row = next_row_tuple;
     }
 
-    rc = _sqlite_step_with_busyhandler(self->statement->st, self->connection);
-    if (rc != SQLITE_DONE && rc != SQLITE_ROW) {
-        Py_DECREF(next_row);
-        _seterror(self->connection->db);
-        return NULL;
-    }
+    if (self->statement) {
+        rc = _sqlite_step_with_busyhandler(self->statement->st, self->connection);
+        if (rc != SQLITE_DONE && rc != SQLITE_ROW) {
+            Py_DECREF(next_row);
+            _seterror(self->connection->db);
+            return NULL;
+        }
 
-    if (rc == SQLITE_ROW) {
-        self->next_row = _fetch_one_row(self);
+        if (rc == SQLITE_ROW) {
+            self->next_row = _fetch_one_row(self);
+        }
     }
 
     return next_row;