[common,settings] fix freerdp_device_clone

automount property of RDPDR_DTYP_FILESYSTEM was not copied, fix that.
This commit is contained in:
akallabeth 2025-05-22 09:34:19 +02:00
parent 6bb28ebea4
commit 635d6319c6
No known key found for this signature in database
GPG Key ID: A49454A3FC909FD5

View File

@ -491,8 +491,7 @@ RDPDR_DEVICE* freerdp_device_clone(const RDPDR_DEVICE* device)
if (device->Name) if (device->Name)
{ {
count = 1; args[count++] = device->Name;
args[0] = device->Name;
} }
switch (device->Type) switch (device->Type)
@ -500,17 +499,14 @@ RDPDR_DEVICE* freerdp_device_clone(const RDPDR_DEVICE* device)
case RDPDR_DTYP_FILESYSTEM: case RDPDR_DTYP_FILESYSTEM:
if (src.drive->Path) if (src.drive->Path)
{ {
args[1] = src.drive->Path; args[count++] = src.drive->Path;
count = 2; args[count++] = src.drive->automount ? NULL : src.drive->Path;
} }
break; break;
case RDPDR_DTYP_PRINT: case RDPDR_DTYP_PRINT:
if (src.printer->DriverName) if (src.printer->DriverName)
{ args[count++] = src.printer->DriverName;
args[1] = src.printer->DriverName;
count = 2;
}
break; break;
case RDPDR_DTYP_SMARTCARD: case RDPDR_DTYP_SMARTCARD:
@ -518,30 +514,18 @@ RDPDR_DEVICE* freerdp_device_clone(const RDPDR_DEVICE* device)
case RDPDR_DTYP_SERIAL: case RDPDR_DTYP_SERIAL:
if (src.serial->Path) if (src.serial->Path)
{ args[count++] = src.serial->Path;
args[1] = src.serial->Path;
count = 2;
}
if (src.serial->Driver) if (src.serial->Driver)
{ args[count++] = src.serial->Driver;
args[2] = src.serial->Driver;
count = 3;
}
if (src.serial->Permissive) if (src.serial->Permissive)
{ args[count++] = src.serial->Permissive;
args[3] = src.serial->Permissive;
count = 4;
}
break; break;
case RDPDR_DTYP_PARALLEL: case RDPDR_DTYP_PARALLEL:
if (src.parallel->Path) if (src.parallel->Path)
{ args[count++] = src.parallel->Path;
args[1] = src.parallel->Path;
count = 2;
}
break; break;
default: default:
WLog_ERR(TAG, "unknown device type %" PRIu32 "", device->Type); WLog_ERR(TAG, "unknown device type %" PRIu32 "", device->Type);