
On Fri, Feb 13, 2009 at 05:56:14PM +0100, Jim Meyering wrote:
"Daniel P. Berrange" <berrange@redhat.com> wrote: ...
This is not safe in general, because after the 'AssignDef' call, the 'def' is now owned by the 'obj'. If you don't set it to NULL immediately you have the risk of later error cleanup paths, seeing the non-NULL def and free'ing it when they shouldn't.
The virGetNetwork() calls should be changed to call 'obj->def->name' instead of just 'def->name'.
Ok. that's safer, so I've adjusted the first two fixes. The latter two functions weren't broken, but I've adjusted the formatting to be consistent with single-stmt-no-curly-braces convention. In these multiple-1000's-of-line files, every little bit helps.
From baf2ec1ee6246f9e472b67d522676b8d41534525 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@redhat.com> Date: Fri, 13 Feb 2009 16:49:50 +0100 Subject: [PATCH] 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->.
ACK, looks fine now. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|