X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fide.c;h=e9a0dd1672607f99d36f2a72fb17ae66089979da;hp=bf842e92d00bf4d3d56d15edb5af20f2919f6b06;hb=366a20deaf086107d75a2004fec076db4705e7c2;hpb=4d1d8fadad33de7d3ebce2083d9782048f78b44e diff --git a/palacios/src/devices/ide.c b/palacios/src/devices/ide.c index bf842e9..e9a0dd1 100644 --- a/palacios/src/devices/ide.c +++ b/palacios/src/devices/ide.c @@ -1082,7 +1082,7 @@ static int read_hd_data(uint8_t * dst, uint64_t length, struct ide_internal * id drive->transfer_index, drive->transfer_length, drive->hd_state.cur_sector_num); - if (drive->transfer_index >= drive->transfer_length) { + if (drive->transfer_index >= drive->transfer_length && drive->transfer_index>=DATA_BUFFER_SIZE) { PrintError(VM_NONE, VCORE_NONE, "Buffer overrun... (xfer_len=%llu) (cur_idx=%llu) (post_idx=%llu)\n", drive->transfer_length, drive->transfer_index, drive->transfer_index + length); @@ -1224,7 +1224,7 @@ static int read_cd_data(uint8_t * dst, uint64_t length, struct ide_internal * id - if (drive->transfer_index >= drive->transfer_length) { + if (drive->transfer_index >= drive->transfer_length && drive->transfer_index>=DATA_BUFFER_SIZE) { PrintError(VM_NONE, VCORE_NONE, "Buffer Overrun... (xfer_len=%llu) (cur_idx=%llu) (post_idx=%llu)\n", drive->transfer_length, drive->transfer_index, drive->transfer_index + length);