Re: [PATCH] libata: Avoid overflow in ata_tf_read_block() when tf->hba_lbal > 127



Roland Dreier wrote:
Phillip O'Donnell <phillip.odonnell@xxxxxxxxx> pointed out that the same
sign extension bug that was fixed in commit ba14a9c2 ("libata: Avoid
overflow in ata_tf_to_lba48() when tf->hba_lbal > 127") also appears to
exist in ata_tf_read_block(). Fix this by adding a cast to u64.

Signed-off-by: Roland Dreier <rolandd@xxxxxxxxx>
---
I don't have any way to test this -- I guess you would have to get an
error on a block above 2G (ie data above 1TB)? But it looks "obviously
correct" enough to add to -next I guess.

drivers/ata/libata-core.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 622350d..a6ad862 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -612,7 +612,7 @@ u64 ata_tf_read_block(struct ata_taskfile *tf, struct ata_device *dev)
if (tf->flags & ATA_TFLAG_LBA48) {
block |= (u64)tf->hob_lbah << 40;
block |= (u64)tf->hob_lbam << 32;
- block |= tf->hob_lbal << 24;
+ block |= (u64)tf->hob_lbal << 24;
} else
block |= (tf->device & 0xf) << 24;

applied


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: [Bug 10648] CONFIG_PRINTK_TIME broken on git HEAD ?
    ... Subject: sched: fix sched_clock_cpu ... Make sched_clock_cpureturn 0 before it has been initialised and avoid ... corrupting its state due to doing so. ... u64 now, now_gtod; ...
    (Linux-Kernel)
  • Re: Blow-out correction
    ... have flaws in them was a bit supercilious, ... kinds in many situations) we learn to avoid, protect, correct, construe, ... We certainly don't blame others who can't fix our errors as you are wont ... You don't wait for an important shot to learn how to rescue. ...
    (rec.photo.digital)
  • Linux 2.6.23-rc3
    ... and random driver updates (the lpfc SCSI driver kind of stands out in the ... ACPI: sbs: remove dead code ... Fix remap handling by blktrace ... remove the 'u64 now' parameter from print_cfs_rq ...
    (Linux-Kernel)
  • Re: P 155 k&r section 7.3
    ... Most warning road signs are there for excellent reasons that ... NOT necessarily mean that a cast is the right way to get rid of the ... Once you have understood the message, you should fix your code ...
    (comp.lang.c)
  • Re: Xilinx FPGA editor tips?
    ... Not necessarily because it's a bad tool, but even if it were awesome it's still an unwise design practice to hand-route--as you have found, it will take hours and hours to fix one net, and you will never save time in the long run. ... the hours spend hand-routing are in vain if you ever change the source again. ... make explicit all multicycle paths and ignored paths to free up routing resources. ... Try to avoid any sort of manual routing or routing guide files. ...
    (comp.arch.fpga)