On 12/16/2016 11:39 AM, Jiri Denemark wrote:
On Wed, Dec 14, 2016 at 10:46:20 -0500, Laine Stump wrote:
On 12/13/2016 08:52 AM, Jiri Denemark wrote:
Iterating over all child nodes when we only support one instance of each child is pretty weired. And it would even cause memory leaks if more than one <tftp> element was specified. ACK, but could you also look for dhcp[2]/tftp[2] and log an error if found? I know there are *lots* of places we ignore extra elements in the XML, but in this case there would be a silent behavior change if someone had (erroneous) multiple tftp or dhcp elements - previously we would have honored the final occurence of each element, but now we honor the first. So even though it's their own fault, it would be nice to Well, if a user provided such a wrong XML, libvirt didn't do what the user asked for anyway. I don't think implementing a different way of not doing what they asked for is something we should worry about :-)
That said, adding the check there is trivial, but I'm not sure it's a good idea since we do not check for extra elements anywhere else.
I retract this suggestion, since doing as I suggest would cause the code to now *fail* to parse XML that previously passed, which is much worse that just failing in a different manner than it had previously failed. I still think this should be taken care of, but in a separate patch that modifies the validation at network define time (so that re-parsing of existing networks won't fail)