Skip to content

Commit

Permalink
block: Read only one sector for format probing
Browse files Browse the repository at this point in the history
The only image format driver that even potentially accesses anything
after 512 bytes in its bdrv_probe() implementation is VMDK, which reads
a plain-text descriptor file. In practice, the field it's looking for
seems to come first and will be well within the first 512 bytes, too.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1416497234-29880-7-git-send-email-kwolf@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
kevmw committed Dec 10, 2014
1 parent c668424 commit 7cddd37
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
6 changes: 3 additions & 3 deletions block.c
Expand Up @@ -654,8 +654,8 @@ BlockDriver *bdrv_find_protocol(const char *filename,
* we do it anyway for backward compatibility.
*
* @buf contains the image's first @buf_size bytes.
* @buf_size is the buffer size in bytes (generally 2048, but can be smaller
* if the image file is smaller)
* @buf_size is the buffer size in bytes (generally BLOCK_PROBE_BUF_SIZE,
* but can be smaller if the image file is smaller)
* @filename is its filename.
*
* For all block drivers, call the bdrv_probe() method to get its
Expand Down Expand Up @@ -685,7 +685,7 @@ static int find_image_format(BlockDriverState *bs, const char *filename,
BlockDriver **pdrv, Error **errp)
{
BlockDriver *drv;
uint8_t buf[2048];
uint8_t buf[BLOCK_PROBE_BUF_SIZE];
int ret = 0;

/* Return the raw BlockDriver * to scsi-generic devices or empty drives */
Expand Down
2 changes: 2 additions & 0 deletions include/block/block_int.h
Expand Up @@ -57,6 +57,8 @@
#define BLOCK_OPT_REDUNDANCY "redundancy"
#define BLOCK_OPT_NOCOW "nocow"

#define BLOCK_PROBE_BUF_SIZE 512

typedef struct BdrvTrackedRequest {
BlockDriverState *bs;
int64_t offset;
Expand Down

0 comments on commit 7cddd37

Please sign in to comment.