From 32566accdab31f598381e7e68330055f4a7178f1 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sun, 7 Jul 2019 17:04:10 +0900 Subject: [PATCH] tdehw: avoid crashing kded when using udisks/udisks2 to operate on drives that contain dashes. This relates to issue #32. Signed-off-by: Michele Calgaro --- tdecore/tdehw/tdestoragedevice.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tdecore/tdehw/tdestoragedevice.cpp b/tdecore/tdehw/tdestoragedevice.cpp index 7dd236524..5489dfc1c 100644 --- a/tdecore/tdehw/tdestoragedevice.cpp +++ b/tdecore/tdehw/tdestoragedevice.cpp @@ -328,6 +328,7 @@ bool ejectDriveUDisks(TDEStorageDevice* sdevice) { if (dbusConn.isConnected()) { TQString blockDeviceString = sdevice->deviceNode(); blockDeviceString.replace("/dev/", ""); + blockDeviceString.replace("-", "_2d"); blockDeviceString = "/org/freedesktop/UDisks/devices/" + blockDeviceString; // Eject the drive! @@ -358,6 +359,7 @@ bool ejectDriveUDisks2(TDEStorageDevice* sdevice) { if (dbusConn.isConnected()) { TQString blockDeviceString = sdevice->deviceNode(); blockDeviceString.replace("/dev/", ""); + blockDeviceString.replace("-", "_2d"); blockDeviceString = "/org/freedesktop/UDisks2/block_devices/" + blockDeviceString; TQT_DBusProxy hardwareControl("org.freedesktop.UDisks2", blockDeviceString, "org.freedesktop.DBus.Properties", dbusConn); if (hardwareControl.canSend()) { @@ -424,6 +426,7 @@ int mountDriveUDisks(TQString deviceNode, TQString fileSystemType, TQStringList if (dbusConn.isConnected()) { TQString blockDeviceString = deviceNode; blockDeviceString.replace("/dev/", ""); + blockDeviceString.replace("-", "_2d"); blockDeviceString = "/org/freedesktop/UDisks/devices/" + blockDeviceString; // Mount the drive! @@ -466,6 +469,7 @@ int mountDriveUDisks2(TQString deviceNode, TQString fileSystemType, TQString mou if (dbusConn.isConnected()) { TQString blockDeviceString = deviceNode; blockDeviceString.replace("/dev/", ""); + blockDeviceString.replace("-", "_2d"); blockDeviceString = "/org/freedesktop/UDisks2/block_devices/" + blockDeviceString; // Mount the drive! @@ -512,6 +516,7 @@ int unMountDriveUDisks(TQString deviceNode, TQStringList unMountOptions, TQStrin if (dbusConn.isConnected()) { TQString blockDeviceString = deviceNode; blockDeviceString.replace("/dev/", ""); + blockDeviceString.replace("-", "_2d"); blockDeviceString = "/org/freedesktop/UDisks/devices/" + blockDeviceString; // Mount the drive! @@ -553,6 +558,7 @@ int unMountDriveUDisks2(TQString deviceNode, TQString unMountOptions, TQString* if (dbusConn.isConnected()) { TQString blockDeviceString = deviceNode; blockDeviceString.replace("/dev/", ""); + blockDeviceString.replace("-", "_2d"); blockDeviceString = "/org/freedesktop/UDisks2/block_devices/" + blockDeviceString; // Mount the drive!