From 4c442eb0b82c8618d4fffc1c5b3832f37778b65e Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 22 Feb 2023 16:13:21 -0500 Subject: [PATCH] remote_disk: Fix B_GET[_BIOS]_GEOMETRY ioctls. They were incorrectly modified in 688acf41a377f25d4048dc6092edb86ac9179677. Fixes #18277. --- .../drivers/disk/virtual/remote_disk/remote_disk.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/drivers/disk/virtual/remote_disk/remote_disk.cpp b/src/add-ons/kernel/drivers/disk/virtual/remote_disk/remote_disk.cpp index f7d1c96e6e..a9d2af3e35 100644 --- a/src/add-ons/kernel/drivers/disk/virtual/remote_disk/remote_disk.cpp +++ b/src/add-ons/kernel/drivers/disk/virtual/remote_disk/remote_disk.cpp @@ -250,13 +250,16 @@ remote_disk_control(void* cookie, uint32 op, void* arg, size_t len) case B_GET_BIOS_GEOMETRY: case B_GET_GEOMETRY: + { TRACE(("remote_disk: %s\n", op == B_GET_BIOS_GEOMETRY ? "B_GET_BIOS_GEOMETRY" : "B_GET_GEOMETRY")); - if (buffer == NULL || length > sizeof(device_geometry)) + if (arg == NULL || len > sizeof(device_geometry)) return B_BAD_VALUE; + device_geometry geometry; device->GetGeometry(&geometry, op == B_GET_BIOS_GEOMETRY); - return user_memcpy(buffer, &geometry, length); + return user_memcpy(arg, &geometry, len); + } case B_GET_MEDIA_STATUS: TRACE(("remote_disk: B_GET_MEDIA_STATUS\n"));