From cd081619d1597d07ce77fec4474e44dae9132f52 Mon Sep 17 00:00:00 2001 From: Aleksandar Dezelin Date: Fri, 23 Dec 2022 15:58:26 +0000 Subject: [PATCH] Fix crash when copying an invalid file --- src/nautilus-dbus-manager.c | 5 +++++ src/nautilus-file-operations.c | 6 ++++++ 2 files changed, 11 insertions(+) --- a/src/nautilus-dbus-manager.c +++ b/src/nautilus-dbus-manager.c @@ -187,6 +187,11 @@ handle_create_folder (NautilusDBusFileOp file = g_file_new_for_uri (uri); basename = g_file_get_basename (file); parent_file = g_file_get_parent (file); + if (parent_file == NULL || basename == NULL) + { + g_dbus_method_invocation_return_error (invocation, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid uri: %s", uri); + return TRUE; + } parent_file_uri = g_file_get_uri (parent_file); handle_create_folder_internal (parent_file_uri, basename, NULL); --- a/src/nautilus-file-operations.c +++ b/src/nautilus-file-operations.c @@ -1022,6 +1022,11 @@ get_basename (GFile *file) if (name == NULL) { basename = g_file_get_basename (file); + if (basename == NULL) + { + return g_strdup (_("unknown")); + } + if (g_utf8_validate (basename, -1, NULL)) { name = basename; @@ -4385,6 +4390,7 @@ get_unique_target_file (GFile *src, if (dest == NULL) { basename = g_file_get_basename (src); + g_assert (basename == NULL); if (g_utf8_validate (basename, -1, NULL)) {