diff --git a/ChangeLog b/ChangeLog index 9f84264519..38d5efa92d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Fri Feb 13 19:09:54 +0100 2009 Jim Meyering + + test:///default driver: don't dereference NULL "def" + * src/test.c (testNetworkCreate, testNetworkDefine): Since "def" is + set to NULL immediately after any vir*AssignDef call (to indicate we + no longer own it and to ensure no clean-up path mistakenly frees it), + dereference via net->def->, not def->. + Fri Feb 13 12:31:03 CET 2009 Guido Günther usleep to wait for domain logfile to fill up diff --git a/src/test.c b/src/test.c index 0e0ec7c400..226fe2e915 100644 --- a/src/test.c +++ b/src/test.c @@ -2049,14 +2049,12 @@ static virNetworkPtr testNetworkCreate(virConnectPtr conn, const char *xml) { if ((def = virNetworkDefParseString(conn, xml)) == NULL) goto cleanup; - if ((net = virNetworkAssignDef(conn, &privconn->networks, - def)) == NULL) { + if ((net = virNetworkAssignDef(conn, &privconn->networks, def)) == NULL) goto cleanup; - } - net->active = 1; def = NULL; + net->active = 1; - ret = virGetNetwork(conn, def->name, def->uuid); + ret = virGetNetwork(conn, net->def->name, net->def->uuid); cleanup: virNetworkDefFree(def); @@ -2076,14 +2074,12 @@ static virNetworkPtr testNetworkDefine(virConnectPtr conn, const char *xml) { if ((def = virNetworkDefParseString(conn, xml)) == NULL) goto cleanup; - if ((net = virNetworkAssignDef(conn, &privconn->networks, - def)) == NULL) { + if ((net = virNetworkAssignDef(conn, &privconn->networks, def)) == NULL) goto cleanup; - } - net->persistent = 1; def = NULL; + net->persistent = 1; - ret = virGetNetwork(conn, def->name, def->uuid); + ret = virGetNetwork(conn, net->def->name, net->def->uuid); cleanup: virNetworkDefFree(def); @@ -2529,9 +2525,8 @@ testStoragePoolCreate(virConnectPtr conn, goto cleanup; } - if (!(pool = virStoragePoolObjAssignDef(conn, &privconn->pools, def))) { + if (!(pool = virStoragePoolObjAssignDef(conn, &privconn->pools, def))) goto cleanup; - } def = NULL; if (testStoragePoolObjSetDefaults(conn, pool) == -1) { @@ -2568,9 +2563,8 @@ testStoragePoolDefine(virConnectPtr conn, def->allocation = defaultPoolAlloc; def->available = defaultPoolCap - defaultPoolAlloc; - if (!(pool = virStoragePoolObjAssignDef(conn, &privconn->pools, def))) { + if (!(pool = virStoragePoolObjAssignDef(conn, &privconn->pools, def))) goto cleanup; - } def = NULL; if (testStoragePoolObjSetDefaults(conn, pool) == -1) {