discomfitor pushed a commit to branch master.

commit c7482d9b7dad135cbf34311351335fe9c1c63a05
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Feb 25 09:22:29 2013 +0000

    fix edbus crash in udisks efm backend
---
 src/bin/e_fm/e_fm_main_udisks.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_fm/e_fm_main_udisks.c b/src/bin/e_fm/e_fm_main_udisks.c
index e6e7870..0b19f5d 100644
--- a/src/bin/e_fm/e_fm_main_udisks.c
+++ b/src/bin/e_fm/e_fm_main_udisks.c
@@ -582,14 +582,16 @@ _e_fm_main_udisks_cb_vol_prop(void *data, const 
EDBus_Message *msg,
           }
         else if (!strcmp(key, "PartitionSlave"))
           {
-             char *partition_slave;
+             char *partition_slave, buf[4096];
              if (!edbus_message_iter_arguments_get(var, "o", &partition_slave))
                continue;
-             partition_slave = strdup(partition_slave);
-             sprintf(partition_slave, "/dev/%s",
-                     partition_slave + 
strlen("/org/freedesktop/UDisks/devices/"));
-             eina_stringshare_replace(&v->parent, partition_slave);
-             free(partition_slave);
+             if ((!partition_slave) || (strlen(partition_slave) < 
sizeof("/org/freedesktop/UDisks/devices/")))
+               eina_stringshare_replace(&v->parent, partition_slave);
+             else
+               {
+                  snprintf(buf, sizeof(buf), "/dev/%s", partition_slave + 
sizeof("/org/freedesktop/UDisks/devices/") - 1);
+                  eina_stringshare_replace(&v->parent, buf);
+               }
           }
 
      }

-- 

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb

Reply via email to