From 22d58c75219aedb01c14fa01f4ce308fb9dabbc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 8 Sep 2009 20:21:16 +0000 Subject: [PATCH] ensure we return a positive lba, fixed #4439 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33002 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h b/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h index 8b1a8a45da..e2d694ca3e 100644 --- a/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h +++ b/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h @@ -110,9 +110,12 @@ inline uint32 msf_to_lba(msf_address msf) { - return (CDROM_FRAMES_PER_MINUTE * msf.minutes) + uint32 lba = (CDROM_FRAMES_PER_MINUTE * msf.minutes) + (CDROM_FRAMES_PER_SECOND * msf.seconds) - + msf.frames - 150; + + msf.frames; + if (lba < 150) + return lba; + return (lba - 150); } /*! \brief Header for data returned by all formats of SCSI