evolution-data-server r9192 - trunk/camel
- From: mcrha svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r9192 - trunk/camel
- Date: Fri, 25 Jul 2008 09:57:25 +0000 (UTC)
Author: mcrha
Date: Fri Jul 25 09:57:25 2008
New Revision: 9192
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9192&view=rev
Log:
2008-07-25 Milan Crha <mcrha redhat com>
** Fix for bug #544651
* camel-folder-summary.c: (EXTRACT_FIRST_STRING), (EXTRACT_STRING):
Properly update string position after read (thanks to srag).
* camel-folder-summary.c: (EXTRACT_DIGIT):
Prevent moving beyond string limit.
* camel-folder-summary.c: (camel_read_mir_callback):
Do not access NULL.
* camel-folder-summary.c: (my_list_append):
Interpret and update given list pointer properly.
Modified:
trunk/camel/ChangeLog
trunk/camel/camel-folder-summary.c
Modified: trunk/camel/camel-folder-summary.c
==============================================================================
--- trunk/camel/camel-folder-summary.c (original)
+++ trunk/camel/camel-folder-summary.c Fri Jul 25 09:57:25 2008
@@ -88,10 +88,10 @@
#define META_SUMMARY_SUFFIX_LEN 5 /* strlen("-meta") */
-#define EXTRACT_FIRST_STRING(val) len=strtoul (part, &part, 10); part++; val=g_strndup (part, len);
-#define EXTRACT_STRING(val) part++; len=strtoul (part, &part, 10); part++; val=g_strndup (part, len);
+#define EXTRACT_FIRST_STRING(val) len=strtoul (part, &part, 10); if (*part) part++; val=g_strndup (part, len); part+=len;
+#define EXTRACT_STRING(val) if (*part) part++; len=strtoul (part, &part, 10); if (*part) part++; val=g_strndup (part, len); part+=len;
#define EXTRACT_FIRST_DIGIT(val) val=strtoul (part, &part, 10);
-#define EXTRACT_DIGIT(val) part++; val=strtoul (part, &part, 10);
+#define EXTRACT_DIGIT(val) if (*part) part++; val=strtoul (part, &part, 10);
/* trivial lists, just because ... */
struct _node {
@@ -937,6 +937,11 @@
info = NULL;
}
mir->cinfo = tmp;
+
+ if (!info) {
+ camel_db_camel_mir_free (mir);
+ return -1;
+ }
}
if (data->double_ref)
@@ -2265,10 +2270,16 @@
static struct _node *
my_list_append(struct _node **list, struct _node *n)
{
- struct _node *ln = (struct _node *)list;
+ struct _node *ln = *list;
+ n->next = NULL;
+
+ if (!ln) {
+ *list = n;
+ return n;
+ }
+
while (ln->next)
ln = ln->next;
- n->next = NULL;
ln->next = n;
return n;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]