diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index d59acd538..3b7b1e1eb 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -3000,10 +3000,11 @@ e_fm2_client_data(Ecore_Ipc_Event_Client_Data *e) if ((e->data) && (e->size > 1)) { E_Volume *v; - char *udi, *mountpoint; + char *udi, *mountpoint = NULL; udi = e->data; - mountpoint = udi + strlen(udi) + 1; + if ((unsigned int)e->size != (strlen(udi) + 1)) + mountpoint = udi + strlen(udi) + 1; v = e_fm2_device_volume_find(udi); if (v) { @@ -3016,7 +3017,7 @@ e_fm2_client_data(Ecore_Ipc_Event_Client_Data *e) a = e_action_find("fileman"); m = e_manager_list(); - if (a && a->func.go && m && eina_list_data_get(m)) + if (a && a->func.go && m && eina_list_data_get(m) && mountpoint) a->func.go(E_OBJECT(eina_list_data_get(m)), mountpoint); } } diff --git a/src/bin/e_fm_device.c b/src/bin/e_fm_device.c index 7cf8652b9..aab1792fd 100644 --- a/src/bin/e_fm_device.c +++ b/src/bin/e_fm_device.c @@ -421,12 +421,8 @@ e_fm2_device_mount_add(E_Volume *v, E_Fm2_Mount *m; v->mounted = EINA_TRUE; - if (mountpoint && (*mountpoint != 0)) - { - if (v->mount_point) - eina_stringshare_del(v->mount_point); - v->mount_point = eina_stringshare_add(mountpoint); - } + if (mountpoint && (mountpoint[0])) + eina_stringshare_replace(&v->mount_point, mountpoint); EINA_LIST_FOREACH(v->mounts, l, m) _e_fm2_device_mount_ok(m);