From: Blue Swirl Date: Fri, 25 Dec 2009 19:27:18 +0000 (+0000) Subject: block/bochs: improve format checking X-Git-Tag: TizenStudio_2.0_p2.3.2~208^2~9167 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ecbe1576b3287e7907b524901063a8117f544e61;p=sdk%2Femulator%2Fqemu.git block/bochs: improve format checking Signed-off-by: Blue Swirl --- diff --git a/block/bochs.c b/block/bochs.c index f6a18f2..3489258 100644 --- a/block/bochs.c +++ b/block/bochs.c @@ -146,7 +146,9 @@ static int bochs_open(BlockDriverState *bs, const char *filename, int flags) bs->total_sectors = le64_to_cpu(bochs.extra.redolog.disk) / 512; } - lseek(s->fd, le32_to_cpu(bochs.header), SEEK_SET); + if (lseek(s->fd, le32_to_cpu(bochs.header), SEEK_SET) == (off_t)-1) { + goto fail; + } s->catalog_size = le32_to_cpu(bochs.extra.redolog.catalog); s->catalog_bitmap = qemu_malloc(s->catalog_size * 4); @@ -197,7 +199,10 @@ static inline int seek_to_sector(BlockDriverState *bs, int64_t sector_num) // bitmap_offset, block_offset); // read in bitmap for current extent - lseek(s->fd, bitmap_offset + (extent_offset / 8), SEEK_SET); + if (lseek(s->fd, bitmap_offset + (extent_offset / 8), SEEK_SET) == + (off_t)-1) { + return -1; + } if (read(s->fd, &bitmap_entry, 1) != 1) return -1; @@ -209,7 +214,9 @@ static inline int seek_to_sector(BlockDriverState *bs, int64_t sector_num) return -1; // not allocated } - lseek(s->fd, block_offset, SEEK_SET); + if (lseek(s->fd, block_offset, SEEK_SET) == (off_t)-1) { + return -1; + } return 0; }