return -1;
}
destdir = imap_get_real_path(session, IMAP_FOLDER(folder), dest->path, &ok);
- if (is_fatal(ok))
+ if (is_fatal(ok)) {
+ g_free(destdir);
return -1;
+ }
statusbar_print_all(_("Adding messages..."));
total = g_slist_length(file_list);
for (cur = file_list; cur != NULL; cur = cur->next) {
destdir = imap_get_real_path(session, IMAP_FOLDER(folder), dest->path, &ok);
- if (is_fatal(ok))
+ if (is_fatal(ok)) {
+ g_free(destdir);
return ok;
+ }
seq_list = imap_get_lep_set_from_msglist(IMAP_FOLDER(folder), msglist);
uid_hash = g_hash_table_new(g_direct_hash, g_direct_equal);
imap_scan_required(folder, dest);
g_free(destdir);
- if (ok == MAILIMAP_NO_ERROR)
- return 0;
- else
- return -1;
+
+ return 0;
}
static gint imap_remove_msgs(Folder *folder, FolderItem *dest,
strtailchomp(root_folder, '/');
real_path = imap_get_real_path
(session, IMAP_FOLDER(folder), root_folder, &r);
- if (is_fatal(r))
+ if (is_fatal(r)) {
+ g_free(real_path);
return -1;
+ }
debug_print("IMAP root directory: %s\n", real_path);
/* check if root directory exist */
if (r) {
g_free(real_path);
statusbar_pop_all();
+ g_free(tmp);
return NULL;
}
folder_item_destroy(cur_item);
real_oldpath = imap_get_real_path(session, IMAP_FOLDER(folder), item->path, &ok);
if (is_fatal(ok)) {
+ g_free(real_oldpath);
return -1;
}
}
separator = imap_get_path_separator(session, IMAP_FOLDER(folder), item->path, &ok);
- if (is_fatal(ok))
+ if (is_fatal(ok)) {
+ g_free(real_oldpath);
return -1;
+ }
if (strchr(item->path, G_DIR_SEPARATOR)) {
dirpath = g_path_get_dirname(item->path);
newpath = g_strconcat(dirpath, G_DIR_SEPARATOR_S, name, NULL);
return -1;
}
path = imap_get_real_path(session, IMAP_FOLDER(folder), item->path, &ok);
- if (is_fatal(ok))
+ if (is_fatal(ok)) {
+ g_free(path);
return -1;
-
+ }
imap_threaded_subscribe(folder, path, FALSE);
selected_folder = (session->mbox != NULL) &&
if (!item)
return '/';
folder = item->folder;
-
+
if (!folder)
return '/';
-
+
imap_folder = IMAP_FOLDER(folder);
-
- if (!imap_folder)
- return '/';
-
+
debug_print("getting session...");
session = imap_session_get(FOLDER(folder));
result = imap_get_path_separator(session, imap_folder, item->path, &ok);
session->expunge = 0;
real_path = imap_get_real_path(session, folder, path, &ok);
- if (is_fatal(ok))
- return ok;
+ if (is_fatal(ok)) {
+ g_free(real_path);
+ return ok;
+ }
g_slist_free(IMAP_FOLDER_ITEM(item)->ok_flags);
IMAP_FOLDER_ITEM(item)->ok_flags = NULL;
ok = imap_cmd_select(session, real_path,
ret = fd_open_unix(path);
#if HAVE_FLOCK
flock(lock_fd, LOCK_UN);
+ close(lock_fd);
claws_unlink(socket_lock);
g_free(socket_lock);
#endif
}
fd_write_all(uxsock, ".\n", 2);
for (;;) {
- fd_gets(uxsock, buf, sizeof(buf));
+ fd_gets(uxsock, buf, sizeof(buf) - 1);
+ buf[sizeof(buf) - 1] = '\0';
if (!strncmp(buf, ".\n", 2)) break;
fputs(buf, stdout);
}
gchar buf[BUFSIZ];
fd_write(uxsock, "statistics\n", 11);
for (;;) {
- fd_gets(uxsock, buf, sizeof(buf));
+ fd_gets(uxsock, buf, sizeof(buf) - 1);
+ buf[sizeof(buf) - 1] = '\0';
if (!strncmp(buf, ".\n", 2)) break;
fputs(buf, stdout);
}
fd_write_all(uxsock, str, strlen(str));
g_free(str);
for (;;) {
- fd_gets(uxsock, buf, sizeof(buf));
+ fd_gets(uxsock, buf, sizeof(buf) - 1);
+ buf[sizeof(buf) - 1] = '\0';
if (!strncmp(buf, ".\n", 2)) break;
fputs(buf, stdout);
}
gchar buf[BUFSIZ];
fd_write_all(uxsock, "get_display\n", 12);
memset(buf, 0, sizeof(buf));
- fd_gets(uxsock, buf, sizeof(buf));
+ fd_gets(uxsock, buf, sizeof(buf) - 1);
+ buf[sizeof(buf) - 1] = '\0';
if (strcmp2(buf, x_display)) {
g_print("Claws Mail is already running on display %s.\n",
buf);
GPtrArray *folders = NULL;
for (;;) {
- fd_gets(sock, buf, sizeof(buf));
+ fd_gets(sock, buf, sizeof(buf) - 1);
+ buf[sizeof(buf) - 1] = '\0';
if (!strncmp(buf, ".\n", 2)) {
break;
}
gchar buf[BUFFSIZE];
sock = fd_accept(source);
- fd_gets(sock, buf, sizeof(buf));
+ if (sock < 0)
+ return;
+
+ fd_gets(sock, buf, sizeof(buf) - 1);
+ buf[sizeof(buf) - 1] = '\0';
if (!strncmp(buf, "popup", 5)) {
main_window_popup(mainwin);
gchar *mailto;
mailto = g_strdup(buf + strlen("compose_attach") + 1);
- while (fd_gets(sock, buf, sizeof(buf)) > 0) {
+ while (fd_gets(sock, buf, sizeof(buf) - 1) > 0) {
+ buf[sizeof(buf) - 1] = '\0';
strretchomp(buf);
if (!strcmp2(buf, "."))
break;
folder_name = g_strdup(buf+7);
strretchomp(folder_name);
- if (fd_gets(sock, buf, sizeof(buf)) <= 0)
+ if (fd_gets(sock, buf, sizeof(buf) - 1) <= 0)
goto search_exit;
+ buf[sizeof(buf) - 1] = '\0';
switch (toupper(buf[0])) {
case 'S': searchType = ADVANCED_SEARCH_SUBJECT; break;
case 'E': searchType = ADVANCED_SEARCH_EXTENDED; break;
}
- if (fd_gets(sock, buf, sizeof(buf)) <= 0)
+ if (fd_gets(sock, buf, sizeof(buf) - 1) <= 0)
goto search_exit;
+ buf[sizeof(buf) - 1] = '\0';
request = g_strdup(buf);
strretchomp(request);
recursive = TRUE;
- if (fd_gets(sock, buf, sizeof(buf)) > 0)
+ if (fd_gets(sock, buf, sizeof(buf) - 1) > 0)
recursive = buf[0] != '0';
+ buf[sizeof(buf) - 1] = '\0';
+
debug_print("search: %s %i %s %i\n", folder_name, searchType, request, recursive);
- if (folder_name)
- folderItem = folder_find_item_from_identifier(folder_name);
+ folderItem = folder_find_item_from_identifier(folder_name);
- if (folder_name && folderItem == NULL) {
+ if (folderItem == NULL) {
debug_print("Unknown folder item : '%s', searching folder\n",folder_name);
Folder* folder = folder_find_from_path(folder_name);
if (folder != NULL)