block/vhdx: Error checking fixes

Errors are inadvertently ignored in a few places.  Has always been
broken.  Spotted by Coverity.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Markus Armbruster 2014-01-29 18:05:08 +01:00 committed by Stefan Hajnoczi
parent fb0a078f3a
commit f50159fa9b
2 changed files with 6 additions and 6 deletions

View File

@ -965,7 +965,7 @@ static int vhdx_log_write(BlockDriverState *bs, BDRVVHDXState *s,
cpu_to_le32s((uint32_t *)(buffer + 4)); cpu_to_le32s((uint32_t *)(buffer + 4));
/* now write to the log */ /* now write to the log */
vhdx_log_write_sectors(bs, &s->log, &sectors_written, buffer, ret = vhdx_log_write_sectors(bs, &s->log, &sectors_written, buffer,
desc_sectors + sectors); desc_sectors + sectors);
if (ret < 0) { if (ret < 0) {
goto exit; goto exit;

View File

@ -374,7 +374,7 @@ static int vhdx_update_header(BlockDriverState *bs, BDRVVHDXState *s,
inactive_header->log_guid = *log_guid; inactive_header->log_guid = *log_guid;
} }
vhdx_write_header(bs->file, inactive_header, header_offset, true); ret = vhdx_write_header(bs->file, inactive_header, header_offset, true);
if (ret < 0) { if (ret < 0) {
goto exit; goto exit;
} }
@ -1810,13 +1810,13 @@ static int vhdx_create(const char *filename, QEMUOptionParameter *options,
creator = g_utf8_to_utf16("QEMU v" QEMU_VERSION, -1, NULL, creator = g_utf8_to_utf16("QEMU v" QEMU_VERSION, -1, NULL,
&creator_items, NULL); &creator_items, NULL);
signature = cpu_to_le64(VHDX_FILE_SIGNATURE); signature = cpu_to_le64(VHDX_FILE_SIGNATURE);
bdrv_pwrite(bs, VHDX_FILE_ID_OFFSET, &signature, sizeof(signature)); ret = bdrv_pwrite(bs, VHDX_FILE_ID_OFFSET, &signature, sizeof(signature));
if (ret < 0) { if (ret < 0) {
goto delete_and_exit; goto delete_and_exit;
} }
if (creator) { if (creator) {
bdrv_pwrite(bs, VHDX_FILE_ID_OFFSET + sizeof(signature), creator, ret = bdrv_pwrite(bs, VHDX_FILE_ID_OFFSET + sizeof(signature),
creator_items * sizeof(gunichar2)); creator, creator_items * sizeof(gunichar2));
if (ret < 0) { if (ret < 0) {
goto delete_and_exit; goto delete_and_exit;
} }