On 2/19/19 2:24 PM, Eric Blake wrote: >> Since this is limited to the GetXMLDesc processing wouldn't this limit >> the exposure in such a way that some new flag expecting some default >> action would not return expected or "new" results on the newer libvirt >> vs. some older one? That is limited to VIR_DOMAIN_XML_COMMON_FLAGS >> (SECURE, INACTIVE, MIGRATABLE). If say, CHECKPOINTABLE was added to that >> list, the get wouldn't fail because it doesn't know the flag, but it >> also wouldn't return any XML related to the new flag, right? > > Indeed - and that's how I found it: I'm trying to add > VIR_DOMAIN_XML_SNAPSHOTS and VIR_DOMAIN_XML_CHECKPOINTS flags, and was > confused when I patched virsh to support the new flag but the old > libvirt didn't react to it in any way (I then confirmed that libvirt > running on RHEL 6 _does_ react to the unknown flag). Missing output is > not a security breach, but is annoying enough to be worth comments > somewhere as to the fact that the problem exists (worse would be if we > wanted to add a flag comparable in nature to VIR_DOMAIN_XML_SECURE, > where failure to obey the flag results in leaking XML information that > should have been suppressed). > >> >> Secondary to that knowing this would require someone to read this >> specific commit message to garnish at least a small understanding of the >> issue. Perhaps some comments in domain_conf.h near the new >> VIR_DOMAIN_XML_COMMON_FLAGS would help ensure someone doesn't expand >> those without understanding the impact. Similarly, near the flags >> definition either a similar noteworthy comment or a comment to go read >> the domain_conf.h comment. There's a quick comment added before >> virDomainDefFormatConvertXMLFlags in this patch that could be expandable >> instead. Doesn't mean someone will read and/or understand it, but at >> least leaves a trail. > > Sure, I can add some strategic comments. Hmm - is there an easy way to add comments to the public include/ headers that are useful to developers, but which don't pollute the generated documentation? Or is this the sort of fix where a public doc comment that "some older versions of libvirt failed to diagnose unknown flags" is acceptable? Comments in domain_conf.[ch] are much easier as they don't affect the public docs. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org