diff --git a/client/src/fileutils.c b/client/src/fileutils.c index 1833f74b9..fc9f08deb 100644 --- a/client/src/fileutils.c +++ b/client/src/fileutils.c @@ -206,12 +206,15 @@ char *newfilenamemcopyEx(const char *preferredName, const char *suffix, savePath char *pfn = fileName; - // user preference save paths - size_t save_path_len = path_size(e_save_path); - if (save_path_len && save_path_len < (FILE_PATH_SIZE - strlen(PATHSEP))) { - snprintf(pfn, len, "%s%s", g_session.defaultPaths[e_save_path], PATHSEP); - pfn += save_path_len + strlen(PATHSEP); - len -= save_path_len + strlen(PATHSEP); + // if given path is not an absolute path + if ((preferredName[0] != '/') && (preferredName[0] != '\\')) { + // user preference save paths + size_t save_path_len = path_size(e_save_path); + if (save_path_len && save_path_len < (FILE_PATH_SIZE - strlen(PATHSEP))) { + snprintf(pfn, len, "%s%s", g_session.defaultPaths[e_save_path], PATHSEP); + pfn += save_path_len + strlen(PATHSEP); + len -= save_path_len + strlen(PATHSEP); + } } // remove file extension if exist in name