ovsdb-idl: Prevent segfault destroying an incomplete transaction.
authorBen Pfaff <blp@nicira.com>
Sat, 12 Dec 2009 00:58:16 +0000 (16:58 -0800)
committerBen Pfaff <blp@nicira.com>
Sat, 12 Dec 2009 00:58:16 +0000 (16:58 -0800)
lib/ovsdb-idl.c

index 409ddb0d074dc9849efaee2dfeafe3c6ac8a6ccf..8c1dcd8f0cd75a3335aaee456086f3f5b799b4c4 100644 (file)
@@ -805,6 +805,9 @@ ovsdb_idl_txn_set_dry_run(struct ovsdb_idl_txn *txn)
 void
 ovsdb_idl_txn_destroy(struct ovsdb_idl_txn *txn)
 {
+    if (txn->status == TXN_INCOMPLETE) {
+        hmap_remove(&txn->idl->outstanding_txns, &txn->hmap_node);
+    }
     ovsdb_idl_txn_abort(txn);
     free(txn);
 }