From 635d6319c614d69b615003e5c1680271e785a894 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Thu, 22 May 2025 09:34:19 +0200 Subject: [PATCH] [common,settings] fix freerdp_device_clone automount property of RDPDR_DTYP_FILESYSTEM was not copied, fix that. --- libfreerdp/common/settings.c | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/libfreerdp/common/settings.c b/libfreerdp/common/settings.c index 1d159cf7a..52380fb70 100644 --- a/libfreerdp/common/settings.c +++ b/libfreerdp/common/settings.c @@ -491,8 +491,7 @@ RDPDR_DEVICE* freerdp_device_clone(const RDPDR_DEVICE* device) if (device->Name) { - count = 1; - args[0] = device->Name; + args[count++] = device->Name; } switch (device->Type) @@ -500,17 +499,14 @@ RDPDR_DEVICE* freerdp_device_clone(const RDPDR_DEVICE* device) case RDPDR_DTYP_FILESYSTEM: if (src.drive->Path) { - args[1] = src.drive->Path; - count = 2; + args[count++] = src.drive->Path; + args[count++] = src.drive->automount ? NULL : src.drive->Path; } break; case RDPDR_DTYP_PRINT: if (src.printer->DriverName) - { - args[1] = src.printer->DriverName; - count = 2; - } + args[count++] = src.printer->DriverName; break; case RDPDR_DTYP_SMARTCARD: @@ -518,30 +514,18 @@ RDPDR_DEVICE* freerdp_device_clone(const RDPDR_DEVICE* device) case RDPDR_DTYP_SERIAL: if (src.serial->Path) - { - args[1] = src.serial->Path; - count = 2; - } + args[count++] = src.serial->Path; if (src.serial->Driver) - { - args[2] = src.serial->Driver; - count = 3; - } + args[count++] = src.serial->Driver; if (src.serial->Permissive) - { - args[3] = src.serial->Permissive; - count = 4; - } + args[count++] = src.serial->Permissive; break; case RDPDR_DTYP_PARALLEL: if (src.parallel->Path) - { - args[1] = src.parallel->Path; - count = 2; - } + args[count++] = src.parallel->Path; break; default: WLog_ERR(TAG, "unknown device type %" PRIu32 "", device->Type);