xenserver/xs-cim — pull request #8 by rdobson (2014-07-09 16:35:43+00:00)
Title: CA-136275: Improving robustness of instruction parsing code

For a snapshot tree import the client provides the CIM layer with a list of instructions to perform, along with a map of UUIDs which is updated on each call.

Providing the client passes in the correct information, all is well - however if the client fails to notice a failure, for example due to out-of-space error on a previous snapshot command, then it will start passing in instructions that do not make sense.

Unfortunately the code was not written to handle this failure case well, and so this invalid input could lead to segfaulting the cimserver process.

This patch safe guards against the following:
* A VDI not existing in the vdi map
* Failures occurring in XAPI commands made from `_exec_snap`

As well as adding some extra debug that was considered useful.