aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-storage.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-storage.c')
-rw-r--r--shell/e-storage.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/shell/e-storage.c b/shell/e-storage.c
index 17c8d94f14..f482a0f6ce 100644
--- a/shell/e-storage.c
+++ b/shell/e-storage.c
@@ -468,10 +468,15 @@ e_storage_async_xfer_folder (EStorage *storage,
g_return_if_fail (g_path_is_absolute (destination_path));
if (remove_source) {
+ int destination_len;
int source_len;
source_len = strlen (source_path);
- if (strncmp (destination_path, source_path, source_len) == 0) {
+ destination_len = strlen (destination_path);
+
+ if (source_len < destination_len
+ && destination_path[source_len] == G_DIR_SEPARATOR
+ && strncmp (destination_path, source_path, source_len) == 0) {
(* callback) (storage, E_STORAGE_CANTMOVETODESCENDANT, data);
return;
}