From 3e513e1b8b6040ac9f91ec4b260bb28da63b4b56 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Tue, 8 Sep 2009 00:45:16 +0000 Subject: [PATCH] Ignore negative start LBA values and assume 0 instead. At least VMWare Fusion seems to incorrectly set pseconds to 0 for the first track, leading to an LBA of -150 which messes up session recognition. Works around VMWare issue in #4439. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32990 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/partitioning_systems/session/Disc.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/add-ons/kernel/partitioning_systems/session/Disc.cpp b/src/add-ons/kernel/partitioning_systems/session/Disc.cpp index 34ae256f22..3d318da7b6 100644 --- a/src/add-ons/kernel/partitioning_systems/session/Disc.cpp +++ b/src/add-ons/kernel/partitioning_systems/session/Disc.cpp @@ -635,6 +635,13 @@ Disc::GetSession(int32 index) PRINT(("found session #%ld info (data session)\n", index)); off_t startLBA = track->start_lba; + if (startLBA < 0) { + WARN(("%s: warning: invalid negative start LBA of %lld" + " for data track assuming 0\n", kModuleDebugName, + startLBA)); + startLBA = 0; + } + off_t endLBA = track->next ? ((struct track*)track->next)->start_lba : session->end_lba;