From f15dbf73eceec036ee28ad65a9745e1f76f73e39 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 12 May 2025 20:46:20 +0300 Subject: [PATCH] Check for RDB even if Windows reports as drive having single MBR partition. --- od-win32/hardfile_win32.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/od-win32/hardfile_win32.cpp b/od-win32/hardfile_win32.cpp index 3074de68..af691582 100644 --- a/od-win32/hardfile_win32.cpp +++ b/od-win32/hardfile_win32.cpp @@ -3215,6 +3215,9 @@ static BOOL GetDevicePropertyFromName(const TCHAR *DevicePath, DWORD Index, DWOR int safepart = 0; udi->dangerous = -6; udi->readonly = readonly ? 2 : 0; + if (dli->PartitionCount == 1 && dli->PartitionEntry[0].Mbr.PartitionType != 0x76 && dli->PartitionEntry[0].Mbr.PartitionType != 0x30) { + goto checkrdb; + } write_log (_T("%d MBR partitions found\n"), dli->PartitionCount); for (i = 0; i < dli->PartitionCount && (*index2) < MAX_FILESYSTEM_UNITS; i++) { PARTITION_INFORMATION_EX *pi = &dli->PartitionEntry[i]; @@ -3298,6 +3301,7 @@ static BOOL GetDevicePropertyFromName(const TCHAR *DevicePath, DWORD Index, DWOR write_log (_T("no MBR partition table detected, checking for RDB\n")); } } +checkrdb: if (udi->offset == 0 && udi->size) { udi->dangerous = safetycheck (hDevice, udi->device_path, 0, buffer, dg.BytesPerSector, udi->identity, udi->chsdetected); if (udi->dangerous > 0) -- 2.47.3