int choutput[2];
pid_t pid;
- pipe(choutput);
+ if (pipe(choutput) == -1) {
+ g_print("can't pipe - error %s", errno);
+ return;
+ }
if (0 == (pid = fork())) {
char *argp[10];
gchar buf[BUFFSIZE];
GSList *l;
- if (partinfo->type == MIMETYPE_TEXT)
+ if (!partinfo || partinfo->type == MIMETYPE_TEXT)
return FALSE;
else
outfp = procmime_get_binary_content(partinfo);
/* Don't scan non-text parts when looking in body, only
* when looking in whole message
*/
- if (partinfo && partinfo->type != MIMETYPE_TEXT &&
- (matcher->criteria == MATCHCRITERIA_NOT_BODY_PART ||
- matcher->criteria == MATCHCRITERIA_BODY_PART))
+ if (matcher->criteria == MATCHCRITERIA_NOT_BODY_PART ||
+ matcher->criteria == MATCHCRITERIA_BODY_PART)
continue;
/* if the criteria is ~body_part or ~message, ZERO lines
if (!g_utf8_validate(string_buf, -1, NULL)) {
gchar *tmp = conv_codeset_strdup(string_buf, conv_get_locale_charset_str(), CS_INTERNAL);
if (tmp) {
- strcpy(string_buf, tmp);
+ g_strlcpy(string_buf, tmp, sizeof(string_buf));
g_free(tmp);
}
}
#if HAVE_FCNTL_H && !defined(G_OS_WIN32)
if (fcntl(lockfd, F_SETLK, &fl) == -1) {
g_warning("can't fnctl %s (%s)", base, strerror(errno));
+ close(lockfd);
return -1;
} else {
fcntled = TRUE;
ok = strcasecmp(to_addr, buf);
g_free(to_addr);
} else {
- strncpy(buf, _("<No Return-Path found>"),
+ g_strlcpy(buf, _("<No Return-Path found>"),
sizeof(buf));
}
{
gchar *text = NULL;
gchar *file;
- MimeInfo *mimeinfo, *encinfo, *brokeninfo, *root;
+ MimeInfo *mimeinfo, *encinfo, *root;
gchar *subject = NULL;
cm_return_val_if_fail(msginfo != NULL, -1);
return_receipt_show(messageview->noticeview,
messageview->msginfo);
- if ((brokeninfo = find_broken_part(mimeinfo)) != NULL) {
+ if (find_broken_part(mimeinfo) != NULL) {
noticeview_set_icon(messageview->noticeview,
STOCK_PIXMAP_NOTICE_WARN);
if (!noticeview_is_visible(messageview->noticeview)) {
if (!is_dir_exist(real_path) && is_dir_exist(path)) {
/* mmh, older version did put utf8 filenames instead of
* the correct encoding */
- g_rename(path, real_path);
- folder_item_scan(item);
+ if (g_rename(path, real_path) == 0)
+ folder_item_scan(item);
}
g_free(path);
if (fclose(mh_sequences_new_fp) == EOF)
err = TRUE;
- if (!err)
- g_rename(mh_sequences_new, mh_sequences_old);
+ if (!err) {
+ if (g_rename(mh_sequences_new, mh_sequences_old) < 0)
+ FILE_OP_ERROR(mh_sequences_new, "rename");
+ }
g_free(sequence);
procmsg_msg_list_free(msglist);
}
FILE *fp;
fp = g_fopen(partinfo->data.filename, "rb");
- fseek(fp, partinfo->offset, SEEK_SET);
- headers = procheader_get_header_array_asis(fp);
- if (headers) {
- gint i;
- for (i = 0; i < headers->len; i++) {
- Header *header = g_ptr_array_index(headers, i);
- if (procheader_headername_equal(header->name, "Subject")) {
- unfold_line(header->body);
- name = g_strconcat(header->body, ".txt", NULL);
- subst_for_filename(name);
+ if (fp != NULL && fseek(fp, partinfo->offset, SEEK_SET) == 0) {
+ headers = procheader_get_header_array_asis(fp);
+ if (headers) {
+ gint i;
+ for (i = 0; i < headers->len; i++) {
+ Header *header = g_ptr_array_index(headers, i);
+ if (procheader_headername_equal(header->name, "Subject")) {
+ unfold_line(header->body);
+ name = g_strconcat(header->body, ".txt", NULL);
+ subst_for_filename(name);
+ }
}
+ procheader_header_array_destroy(headers);
}
- procheader_header_array_destroy(headers);
+ fclose(fp);
}
- fclose(fp);
if (name)
filename = g_path_get_basename(name);
g_free(name);
if(msginfo->msgid)
g_hash_table_insert(cache->msgid_table, msginfo->msgid, msginfo);
}
-
-#ifdef G_OS_WIN32
- UnmapViewOfFile((void*) cache_data);
-#else
- munmap(cache_data, map_len);
-#endif
} else {
while (fread(&num, sizeof(num), 1, fp) == 1) {
if (swapping)
}
}
bail_err:
+ if (cache_data != NULL && cache_data != MAP_FAILED) {
+#ifdef G_OS_WIN32
+ UnmapViewOfFile((void*) cache_data);
+#else
+ munmap(cache_data, map_len);
+#endif
+ }
fclose(fp);
-
if (conv != NULL) {
if (conv->free != NULL)
conv->free(conv);
msginfo->flags.perm_flags = perm_flags;
}
}
-#ifdef G_OS_WIN32
- UnmapViewOfFile((void*) cache_data);
-#else
- munmap(cache_data, map_len);
-#endif
} else {
while (fread(&num, sizeof(num), 1, fp) == 1) {
if (swapping)
}
}
bail_err:
+ if (cache_data != NULL && cache_data != MAP_FAILED) {
+#ifdef G_OS_WIN32
+ UnmapViewOfFile((void*) cache_data);
+#else
+ munmap(cache_data, map_len);
+#endif
+ }
fclose(fp);
if (error) {
debug_print("error reading cache mark from %s\n", mark_file);
msginfo->tags = g_slist_reverse(msginfo->tags);
}
}
-#ifdef G_OS_WIN32
- UnmapViewOfFile((void*) cache_data);
-#else
- munmap(cache_data, map_len);
-#endif
} else {
while (fread(&num, sizeof(num), 1, fp) == 1) {
gint id = -1;
}
}
bail_err:
+ if (cache_data != NULL && cache_data != MAP_FAILED) {
+#ifdef G_OS_WIN32
+ UnmapViewOfFile((void*) cache_data);
+#else
+ munmap(cache_data, map_len);
+#endif
+ }
fclose(fp);
if (error) {
debug_print("error reading cache tags from %s\n", tags_file);
if (w_err != 0) {
g_warning("failed to write charset\n");
- fclose(write_fps.cache_fp);
+ if (write_fps.cache_fp)
+ fclose(write_fps.cache_fp);
claws_unlink(new_cache);
g_free(new_cache);
g_free(new_mark);
write_fps.mark_fp = msgcache_open_data_file(new_mark, MARK_VERSION,
DATA_WRITE, NULL, 0);
if (write_fps.mark_fp == NULL) {
- fclose(write_fps.cache_fp);
+ if (write_fps.cache_fp)
+ fclose(write_fps.cache_fp);
claws_unlink(new_cache);
g_free(new_cache);
g_free(new_mark);
write_fps.tags_fp = msgcache_open_data_file(new_tags, TAGS_VERSION,
DATA_WRITE, NULL, 0);
if (write_fps.tags_fp == NULL) {
- fclose(write_fps.cache_fp);
- fclose(write_fps.mark_fp);
+ if (write_fps.cache_fp)
+ fclose(write_fps.cache_fp);
+ if (write_fps.mark_fp)
+ fclose(write_fps.mark_fp);
claws_unlink(new_cache);
claws_unlink(new_mark);
g_free(new_cache);
if (r != NEWSNNTP_NO_ERROR) {
log_error(LOG_PROTOCOL, _("Error logging in to %s:%d...\n"), server, port);
- if (session != NULL)
- session_destroy(SESSION(session));
+ session_destroy(SESSION(session));
return NULL;
}
g_free(path);
if (is_file_exist(filename)) {
- if (remove(filename) < 0)
+ if (claws_unlink(filename) < 0)
FILE_OP_ERROR(filename, "remove");
}
g_free(filename);
}
news_post(folder, tmp);
- remove(tmp);
+ claws_unlink(tmp);
g_free(tmp);
NewsSession *session;
GSList *elem, *msginfo_list = NULL, *tmp_msgnum_list, *tmp_msginfo_list;
guint first, last, next;
-/* guint tofetch, fetched;
-*/
cm_return_val_if_fail(folder != NULL, NULL);
cm_return_val_if_fail(FOLDER_CLASS(folder) == &news_class, NULL);
tmp_msgnum_list = g_slist_sort(tmp_msgnum_list, g_int_compare);
progressindicator_start(PROGRESS_TYPE_NETWORK);
-/* tofetch = g_slist_length(tmp_msgnum_list);
- fetched = 0;
-*/
first = GPOINTER_TO_INT(tmp_msgnum_list->data);
last = first;
for(elem = g_slist_next(tmp_msgnum_list); elem != NULL; elem = g_slist_next(elem)) {
next = GPOINTER_TO_INT(elem->data);
if(next != (last + 1)) {
-/* session->fetch_base_percentage = ((gfloat) fetched) / ((gfloat) tofetch);
- session->fetch_total_percentage = ((gfloat) (last - first + 1)) / ((gfloat) tofetch);
-*/
tmp_msginfo_list = news_get_msginfos_for_range(session, item, first, last);
msginfo_list = g_slist_concat(msginfo_list, tmp_msginfo_list);
-/* fetched = last - first + 1;
-*/
first = next;
}
last = next;
news_folder_unlock(NEWS_FOLDER(item->folder));
-/* session->fetch_base_percentage = ((gfloat) fetched) / ((gfloat) tofetch);
- session->fetch_total_percentage = ((gfloat) (last - first + 1)) / ((gfloat) tofetch);
-*/
tmp_msginfo_list = news_get_msginfos_for_range(session, item, first, last);
msginfo_list = g_slist_concat(msginfo_list, tmp_msginfo_list);
}
fclose(fp);
- claws_unlink(filename);
- g_rename(pathnew, filename);
+ rename_force(pathnew, filename);
g_free(pathnew);
msginfo->planned_download = download;
msgcache_update_msg(msginfo->folder->cache, msginfo);