On 8/27/19 4:35 PM, Jonathon Jongsma wrote: > When we're collecting guest information, older agents may not support > all agent commands. In the case where the user requested all info > types (i.e. types == 0), ignore unsupported command errors and gather as > much information as possible. If the agent command failed for some other > reason, or if the user explciitly requested a specific info type (i.e. > types != 0), abort on the first error. > > Signed-off-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> > --- > src/qemu/qemu_agent.c | 70 ++++++++++++++++++++++++++++++++++++++---- > src/qemu/qemu_driver.c | 33 ++++++++++---------- > tests/qemuagenttest.c | 2 +- > 3 files changed, 82 insertions(+), 23 deletions(-) > > diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c > index f2a8bb6263..c63db968c6 100644 > --- a/src/qemu/qemu_agent.c > +++ b/src/qemu/qemu_agent.c > @@ -995,6 +995,26 @@ qemuAgentStringifyErrorClass(const char *klass) > return "unknown QEMU command error"; > } > > +/* Checks whether the agent reply msg is an error caused by an unsupported > + * command. > + * > + * Returns true when reply is CommandNotFound or CommandDisabled > + * false otherwise > + */ > +static bool > +qemuAgentErrorCommandUnsupported(virJSONValuePtr reply) > +{ > + const char *klass; > + virJSONValuePtr error = virJSONValueObjectGet(reply, "error");> + Coverity notes it's possible to enter this function with @reply == NULL... Calls to qemuAgentCommand will set @*reply = NULL immediately and only fill in @*reply when/if qemuAgentSend returns 0 *and* @msg.rxObject != NULL. When virJSONValueObjectGet is called it derefs it's first parameter (@object) immediately John [...] -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list