projects
/
modest
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e2834e9
)
Fixes several potential infinite loops with corrupted account data
author
Sergio Villar Senin
<svillar@igalia.com>
Wed, 28 Jan 2009 11:51:25 +0000
(11:51 +0000)
committer
Sergio Villar Senin
<svillar@igalia.com>
Wed, 28 Jan 2009 11:51:25 +0000
(11:51 +0000)
pmo-trunk-r7330
src/hildon2/modest-hildon2-global-settings-dialog.c
patch
|
blob
|
history
src/modest-account-mgr.c
patch
|
blob
|
history
src/modest-tny-folder.c
patch
|
blob
|
history
src/modest-tny-msg.c
patch
|
blob
|
history
diff --git
a/src/hildon2/modest-hildon2-global-settings-dialog.c
b/src/hildon2/modest-hildon2-global-settings-dialog.c
index
99ecd07
..
affde22
100644
(file)
--- a/
src/hildon2/modest-hildon2-global-settings-dialog.c
+++ b/
src/hildon2/modest-hildon2-global-settings-dialog.c
@@
-440,6
+440,7
@@
get_accounts_list (void)
settings = modest_account_mgr_load_account_settings (account_mgr, account_name);
if (!settings) {
g_printerr ("modest: failed to get account data for %s\n", account_name);
settings = modest_account_mgr_load_account_settings (account_mgr, account_name);
if (!settings) {
g_printerr ("modest: failed to get account data for %s\n", account_name);
+ cursor = cursor->next;
continue;
}
store_settings = modest_account_settings_get_store_settings (settings);
continue;
}
store_settings = modest_account_settings_get_store_settings (settings);
diff --git
a/src/modest-account-mgr.c
b/src/modest-account-mgr.c
index
913d7d4
..
c3e12dc
100644
(file)
--- a/
src/modest-account-mgr.c
+++ b/
src/modest-account-mgr.c
@@
-768,9
+768,11
@@
modest_account_mgr_account_names (ModestAccountMgr * self, gboolean only_enabled
/* Unescape the keys to get the account names: */
GSList *iter = accounts;
while (iter) {
/* Unescape the keys to get the account names: */
GSList *iter = accounts;
while (iter) {
- if (!(iter->data))
+ if (!(iter->data)) {
+ iter = iter->next;
continue;
continue;
-
+ }
+
const gchar* account_name_key = (const gchar*)iter->data;
gchar* unescaped_name = account_name_key ?
modest_conf_key_unescape (account_name_key)
const gchar* account_name_key = (const gchar*)iter->data;
gchar* unescaped_name = account_name_key ?
modest_conf_key_unescape (account_name_key)
@@
-1132,6
+1134,7
@@
modest_account_mgr_account_with_display_name_exists (ModestAccountMgr *self,
ModestAccountSettings *settings = modest_account_mgr_load_account_settings (self, account_name);
if (!settings) {
g_printerr ("modest: failed to get account data for %s\n", account_name);
ModestAccountSettings *settings = modest_account_mgr_load_account_settings (self, account_name);
if (!settings) {
g_printerr ("modest: failed to get account data for %s\n", account_name);
+ cursor = cursor->next;
continue;
}
continue;
}
@@
-1210,6
+1213,7
@@
modest_account_mgr_check_already_configured_account (ModestAccountMgr *self,
from_mgr_settings = modest_account_mgr_load_account_settings (self, account_name);
if (!settings) {
g_printerr ("modest: failed to get account data for %s\n", account_name);
from_mgr_settings = modest_account_mgr_load_account_settings (self, account_name);
if (!settings) {
g_printerr ("modest: failed to get account data for %s\n", account_name);
+ cursor = cursor->next;
continue;
}
continue;
}
diff --git
a/src/modest-tny-folder.c
b/src/modest-tny-folder.c
index
f01c61d
..
28012c3
100644
(file)
--- a/
src/modest-tny-folder.c
+++ b/
src/modest-tny-folder.c
@@
-432,6
+432,7
@@
modest_tny_folder_has_subfolder_with_name (TnyFolderStore *parent,
folder = (TnyFolder*)tny_iterator_get_current (iter);
if (!folder || ! TNY_IS_FOLDER(folder)) {
g_warning ("%s: invalid folder", __FUNCTION__);
folder = (TnyFolder*)tny_iterator_get_current (iter);
if (!folder || ! TNY_IS_FOLDER(folder)) {
g_warning ("%s: invalid folder", __FUNCTION__);
+ tny_iterator_next (iter);
continue;
}
continue;
}
@@
-439,6
+440,7
@@
modest_tny_folder_has_subfolder_with_name (TnyFolderStore *parent,
if (!name) {
g_warning ("%s: folder name == NULL", __FUNCTION__);
g_object_unref (folder);
if (!name) {
g_warning ("%s: folder name == NULL", __FUNCTION__);
g_object_unref (folder);
+ tny_iterator_next (iter);
continue;
}
continue;
}
diff --git
a/src/modest-tny-msg.c
b/src/modest-tny-msg.c
index
a249f7c
..
abdcf44
100644
(file)
--- a/
src/modest-tny-msg.c
+++ b/
src/modest-tny-msg.c
@@
-488,6
+488,7
@@
modest_tny_msg_find_body_part_from_mime_part (TnyMimePart *msg, gboolean want_ht
if (!part) {
g_warning ("%s: not a valid mime part", __FUNCTION__);
if (!part) {
g_warning ("%s: not a valid mime part", __FUNCTION__);
+ tny_iterator_next (iter);
continue;
}
continue;
}