Skip to content

Commit

Permalink
mail-client/claws-mail: Revbump to fix segfault (bug #618376).
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.6, Repoman-2.3.3
  • Loading branch information
Lars Wendler committed Aug 11, 2017
1 parent 9e309ad commit dbd1e3e
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ RDEPEND="${COMMONDEPEND}
net-misc/curl
)"

PATCHES=(
"${FILESDIR}/${P}-old_profile_segfault.patch"
)

pkg_setup() {
use python && python-single-r1_pkg_setup
}
Expand Down Expand Up @@ -148,7 +152,7 @@ src_configure() {
)

# libetpan is needed if user wants nntp or imap functionality
if use imap || use nntp; then
if use imap || use nntp ; then
myeconfargs+=( --enable-libetpan )
else
myeconfargs+=( --disable-libetpan )
Expand Down Expand Up @@ -183,7 +187,7 @@ src_install() {
doexe tb2claws-mail update-po uudec uuooffice

# kill useless files
rm -f "${D}"/usr/lib*/claws-mail/plugins/*.{a,la}
rm -f "${ED%/}"/usr/lib*/claws-mail/plugins/*.{a,la}
}

pkg_preinst() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
From: Ricardo Mones <[email protected]>
Date: Wed, 9 Aug 2017 14:48:38 +0000 (+0200)
Subject: Fix bug #3855: segfault at startup with old profile and IMAP account
X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=667c9d3eaf0487193cc7873e6d3a63959a03d7f9;hp=63677adb68c57479f6bc7534cfbf2f234b1f4fb1

Fix bug #3855: segfault at startup with old profile and IMAP account

Revert "Remove duplicated code and include".

This reverts commit 300f811f3bbf10455ca55d9b01da6705dd1e07bb.
---

diff --git a/src/imap.c b/src/imap.c
index 0e1e777..25bb283 100644
--- a/src/imap.c
+++ b/src/imap.c
@@ -77,6 +77,8 @@ typedef struct _IMAPSession IMAPSession;
typedef struct _IMAPNameSpace IMAPNameSpace;
typedef struct _IMAPFolderItem IMAPFolderItem;

+#include "prefs_account.h"
+
#define IMAP_FOLDER(obj) ((IMAPFolder *)obj)
#define IMAP_FOLDER_ITEM(obj) ((IMAPFolderItem *)obj)
#define IMAP_SESSION(obj) ((IMAPSession *)obj)
@@ -425,6 +427,7 @@ static gint imap_get_flags (Folder *folder,
FolderItem *item,
MsgInfoList *msglist,
GHashTable *msgflags);
+static gchar *imap_folder_get_path (Folder *folder);
static gchar *imap_item_get_path (Folder *folder,
FolderItem *item);
static MsgInfo *imap_parse_msg(const gchar *file, FolderItem *item);
@@ -3042,6 +3045,35 @@ static FolderItem *imap_create_special_folder(Folder *folder,
return new_item;
}

+static gchar *imap_folder_get_path(Folder *folder)
+{
+ gchar *folder_path;
+
+ g_return_val_if_fail(folder != NULL, NULL);
+ g_return_val_if_fail(folder->account != NULL, NULL);
+
+#ifdef G_OS_WIN32
+ gchar *sanitized_dirname = g_strdup(folder->account->recv_server);
+ g_strdelimit(sanitized_dirname, ":", ',');
+#endif
+
+ folder_path = g_strconcat(get_imap_cache_dir(),
+ G_DIR_SEPARATOR_S,
+#ifdef G_OS_WIN32
+ sanitized_dirname,
+#else
+ folder->account->recv_server,
+#endif
+ G_DIR_SEPARATOR_S,
+ folder->account->userid,
+ NULL);
+
+#ifdef G_OS_WIN32
+ g_free(sanitized_dirname);
+#endif
+ return folder_path;
+}
+
#ifdef G_OS_WIN32
static gchar *imap_encode_unsafe_chars(const gchar *str)
{
@@ -3078,9 +3110,8 @@ static gchar *imap_item_get_path(Folder *folder, FolderItem *item)
gchar *item_path = NULL;

g_return_val_if_fail(folder != NULL, NULL);
- g_return_val_if_fail(folder->account != NULL, NULL);
g_return_val_if_fail(item != NULL, NULL);
- folder_path = prefs_account_cache_dir(folder->account, FALSE);
+ folder_path = imap_folder_get_path(folder);

g_return_val_if_fail(folder_path != NULL, NULL);

0 comments on commit dbd1e3e

Please sign in to comment.