Check for NULL pointer returned from igvm_get_buffer(). Documentation for that function calls for that unconditionally. Signed-off-by: Oliver Steffen --- backends/igvm.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/backends/igvm.c b/backends/igvm.c index a350c890cc..dc1fd026cb 100644 --- a/backends/igvm.c +++ b/backends/igvm.c @@ -170,9 +170,16 @@ static int qigvm_handler(QIgvm *ctx, uint32_t type, Error **errp) (int)header_handle); return -1; } - header_data = igvm_get_buffer(ctx->file, header_handle) + - sizeof(IGVM_VHS_VARIABLE_HEADER); - result = handlers[handler].handler(ctx, header_data, errp); + header_data = igvm_get_buffer(ctx->file, header_handle); + if (header_data == NULL) { + error_setg( + errp, + "IGVM: Failed to get directive header data (code: %d)", + (int)header_handle); + result = -1; + } else { + result = handlers[handler].handler(ctx, header_data + sizeof(IGVM_VHS_VARIABLE_HEADER), errp); + } igvm_free_buffer(ctx->file, header_handle); return result; } -- 2.52.0