Branch: r14.0.x

c90f6c3e 2019-07-07 14:13:18 Michele Calgaro
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 <michele.calgaro@...>
(cherry picked from commit 32566accdab31f598381e7e68330055f4a7178f1)
M tdecore/tdehw/tdestoragedevice.cpp

tdecore/tdehw/tdestoragedevice.cpp

diff --git a/tdecore/tdehw/tdestoragedevice.cpp b/tdecore/tdehw/tdestoragedevice.cpp
index b8b5c6d..1530d62 100644
--- a/tdecore/tdehw/tdestoragedevice.cpp
+++ b/tdecore/tdehw/tdestoragedevice.cpp
@@ -112,6 +112,7 @@
 	if (dbusConn.isConnected()) {
 		TQString blockDeviceString = sdevice->deviceNode();
 		blockDeviceString.replace("/dev/", "");
+		blockDeviceString.replace("-", "_2d");
 		blockDeviceString = "/org/freedesktop/UDisks/devices/" + blockDeviceString;
 
 		// Eject the drive!
@@ -142,6 +143,7 @@
 	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()) {
@@ -208,6 +210,7 @@
 	if (dbusConn.isConnected()) {
 		TQString blockDeviceString = deviceNode;
 		blockDeviceString.replace("/dev/", "");
+		blockDeviceString.replace("-", "_2d");
 		blockDeviceString = "/org/freedesktop/UDisks/devices/" + blockDeviceString;
 
 		// Mount the drive!
@@ -250,6 +253,7 @@
 	if (dbusConn.isConnected()) {
 		TQString blockDeviceString = deviceNode;
 		blockDeviceString.replace("/dev/", "");
+		blockDeviceString.replace("-", "_2d");
 		blockDeviceString = "/org/freedesktop/UDisks2/block_devices/" + blockDeviceString;
 
 		// Mount the drive!
@@ -296,6 +300,7 @@
 	if (dbusConn.isConnected()) {
 		TQString blockDeviceString = deviceNode;
 		blockDeviceString.replace("/dev/", "");
+		blockDeviceString.replace("-", "_2d");
 		blockDeviceString = "/org/freedesktop/UDisks/devices/" + blockDeviceString;
 
 		// Mount the drive!
@@ -337,6 +342,7 @@
 	if (dbusConn.isConnected()) {
 		TQString blockDeviceString = deviceNode;
 		blockDeviceString.replace("/dev/", "");
+		blockDeviceString.replace("-", "_2d");
 		blockDeviceString = "/org/freedesktop/UDisks2/block_devices/" + blockDeviceString;
 
 		// Mount the drive!