[PATCH 00/12] use g_autoptr for all DIR*

Laine Stump laine at redhat.com
Wed Oct 28 16:18:50 UTC 2020

On 10/28/20 7:39 AM, Daniel Henrique Barboza wrote:
> Hey,
> On 10/27/20 10:35 PM, Laine Stump wrote:
>> I don't even remember why I started looking at this. I think that
>> again I was considering changing some function, and making the DIR* in
>> that function autoclose was a prerequisite for a reasonably clean
>> addition to the function. I eventually gave up on the other plan
>> (probably because it was a bad idea), but decided that the DIR*'s
>> really did need to autoclose.
>> In the end, all uses of DIR* could be easily converted to use
>> g_autoptr.
> I think you created this series in parallel with your "node_device: fix 
> leak
> of DIR*" patch, right?.

No. This series has been building up for a couple weeks, but the leak 
just came up 2 days ago and I didn't write the patch for it until I had 
finished and posted this series. But the node-device bugfix needs to be 
pushed before the next release, while this series won't be pushed until 
after the release, so the bugfix had to be based on the current state of 
upstream, rather than stacked on top of other work.

> Because you're not changing 'node_device_udev.c' 
> anywhere in
> this series, meaning that the code base you used still have the DIR leak in
> udevGetVDPACharDev(). The code base didn't have the added 
> VIR_DIR_CLOSE() calls there
> to fix the leak, and I believe you forgot to take that into account 
> here. The end result
> is that the leak fix patch will break after patch 10 removes the 
> macro.

Yep. It wasn't forgotten, just done in a different order than you 
assumed, and both had to be based on current upstream rather than 
dependent on each other.

> A quick fix is simply using "node_device: fix leak of DIR*" as the first
> patch of this series, then you can handle the removal of VIR_DIR_CLOSE()
> and g_autoptr() for that case in patch 8.

Yep, that's what I'd planned to do.

> There's no cleanup labels to
> be added there, so it's a trivial removal of the two VIR_DIR_CLOSE()
> calls and turning the DIR var to g_autoptr().

> Assuming you go with that (and fix my whitespace nit in patch 12! :P ), 
> feel
> free to add my R-b in all patches:

Okay, thanks!

> Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>

More information about the libvir-list mailing list