• P
    block/vmdk: Report failures in vmdk_read_cid() · 9877860e
    Peter Maydell 提交于
    The function vmdk_read_cid() can fail if the read on the underlying
    block device fails, or if there's a format error in the VMDK file.
    However its API doesn't provide a mechanism to report these errors,
    and in some cases we were returning a CID of 0 and in some cases a
    CID of 0xffffffff, either of which might potentially be valid values.
    
    Change the function to return 0 on success or a negative errno, and
    return the CID via a uint32_t* argument. Update the callsites to
    handle and propagate the error appropriately.
    
    This fixes in passing a Coverity-spotted issue (CID 1350038) where
    we weren't checking the return value from sscanf().
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NFam Zheng <famz@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    9877860e
vmdk.c 72.6 KB