- Add patch for GNOME bug #509644 (password dialog breakage).

- Remove patch for RH bug #384741 (fixed upstream).
- Remove patch for GNOME bug #363695 (obsolete).
- Remove patch for GNOME bug #376991 (obsolete).
This commit is contained in:
Matthew Barnes 2008-01-16 18:35:23 +00:00
parent dd616722d7
commit bf9583ba6c
5 changed files with 35 additions and 2571 deletions

View File

@ -1,528 +0,0 @@
--- evolution-data-server-1.11.3/camel/camel-text-index.c.kill-ememory 2007-06-01 03:06:38.000000000 -0400
+++ evolution-data-server-1.11.3/camel/camel-text-index.c 2007-06-04 12:28:31.000000000 -0400
@@ -70,7 +70,7 @@ typedef struct _CamelTextIndexNamePrivat
struct _CamelTextIndexNamePrivate {
GString *buffer;
camel_key_t nameid;
- EMemPool *pool;
+ GStringChunk *string_chunk;
};
CamelTextIndexName *camel_text_index_name_new(CamelTextIndex *idx, const char *name, camel_key_t nameid);
@@ -1374,7 +1374,7 @@ text_index_name_add_word(CamelIndexName
struct _CamelTextIndexNamePrivate *p = ((CamelTextIndexName *)idn)->priv;
if (g_hash_table_lookup(idn->words, word) == NULL) {
- char *w = e_mempool_strdup(p->pool, word);
+ char *w = g_string_chunk_insert(p->string_chunk, word);
g_hash_table_insert(idn->words, w, w);
}
@@ -1502,7 +1502,7 @@ camel_text_index_name_init(CamelTextInde
p = idn->priv = g_malloc0(sizeof(*idn->priv));
p->buffer = g_string_new("");
- p->pool = e_mempool_new(256, 128, E_MEMPOOL_ALIGN_BYTE);
+ p->string_chunk = g_string_chunk_new(256);
}
static void
@@ -1513,7 +1513,7 @@ camel_text_index_name_finalise(CamelText
g_hash_table_destroy(idn->parent.words);
g_string_free(p->buffer, TRUE);
- e_mempool_destroy(p->pool);
+ g_string_chunk_free(p->string_chunk);
g_free(p);
}
@@ -1545,7 +1545,7 @@ camel_text_index_name_new(CamelTextIndex
cin->index = (CamelIndex *)idx;
camel_object_ref((CamelObject *)idx);
- cin->name = e_mempool_strdup(p->pool, name);
+ cin->name = g_string_chunk_insert(p->string_chunk, name);
p->nameid = nameid;
return idn;
--- evolution-data-server-1.11.3/camel/camel-mime-parser.c.kill-ememory 2007-05-09 00:09:34.000000000 -0400
+++ evolution-data-server-1.11.3/camel/camel-mime-parser.c 2007-06-04 12:28:31.000000000 -0400
@@ -120,7 +120,7 @@ struct _header_scan_stack {
camel_mime_parser_state_t savestate; /* state at invocation of this part */
#ifdef MEMPOOL
- EMemPool *pool; /* memory pool to keep track of headers/etc at this level */
+ GStringChunk *string_chunk; /* string chunk to keep track of headers/etc at this level */
#endif
struct _camel_header_raw *headers; /* headers for this part */
@@ -999,7 +999,8 @@ folder_pull_part(struct _header_scan_sta
s->parts = h->parent;
g_free(h->boundary);
#ifdef MEMPOOL
- e_mempool_destroy(h->pool);
+ if (h->string_chunk != NULL)
+ g_string_chunk_free(h->string_chunk);
#else
camel_header_raw_clear(&h->headers);
#endif
@@ -1107,20 +1108,16 @@ header_append_mempool(struct _header_sca
content = strchr(header, ':');
if (content) {
register int len;
- n = e_mempool_alloc(h->pool, sizeof(*n));
+ n = g_malloc(sizeof(*n));
n->next = NULL;
len = content-header;
- n->name = e_mempool_alloc(h->pool, len+1);
- memcpy(n->name, header, len);
- n->name[len] = 0;
+ n->name = g_string_chunk_insert_len(h->string_chunk, header, len);
content++;
len = s->outptr - content;
- n->value = e_mempool_alloc(h->pool, len+1);
- memcpy(n->value, content, len);
- n->value[len] = 0;
+ n->value = g_string_chunk_insert_len(h->string_chunk, content, len);
n->offset = offset;
@@ -1178,7 +1175,7 @@ folder_scan_header(struct _header_scan_s
h = g_malloc0(sizeof(*h));
#ifdef MEMPOOL
- h->pool = e_mempool_new(8192, 4096, E_MEMPOOL_ALIGN_STRUCT);
+ h->string_chunk = g_string_chunk_new(8192);
#endif
if (s->parts)
--- evolution-data-server-1.11.3/camel/camel-folder.c.kill-ememory 2007-06-04 01:40:57.000000000 -0400
+++ evolution-data-server-1.11.3/camel/camel-folder.c 2007-06-04 12:30:21.000000000 -0400
@@ -1755,7 +1755,7 @@ struct _CamelFolderChangeInfoPrivate {
GHashTable *uid_stored; /* what we have stored, which array they're in */
GHashTable *uid_source; /* used to create unique lists */
GPtrArray *uid_filter; /* uids to be filtered */
- struct _EMemPool *uid_pool; /* pool used to store copies of uid strings */
+ GStringChunk *uid_string_chunk; /* used to store copies of uid strings */
};
@@ -1934,7 +1934,7 @@ camel_folder_change_info_new(void)
info->priv->uid_stored = g_hash_table_new(g_str_hash, g_str_equal);
info->priv->uid_source = NULL;
info->priv->uid_filter = g_ptr_array_new();
- info->priv->uid_pool = e_mempool_new(512, 256, E_MEMPOOL_ALIGN_BYTE);
+ info->priv->uid_string_chunk = g_string_chunk_new(512);
return info;
}
@@ -1960,7 +1960,7 @@ camel_folder_change_info_add_source(Came
p->uid_source = g_hash_table_new(g_str_hash, g_str_equal);
if (g_hash_table_lookup(p->uid_source, uid) == NULL)
- g_hash_table_insert(p->uid_source, e_mempool_strdup(p->uid_pool, uid), GINT_TO_POINTER (1));
+ g_hash_table_insert(p->uid_source, g_string_chunk_insert(p->uid_string_chunk, uid), GINT_TO_POINTER (1));
}
@@ -1989,7 +1989,7 @@ camel_folder_change_info_add_source_list
char *uid = list->pdata[i];
if (g_hash_table_lookup(p->uid_source, uid) == NULL)
- g_hash_table_insert(p->uid_source, e_mempool_strdup(p->uid_pool, uid), GINT_TO_POINTER (1));
+ g_hash_table_insert(p->uid_source, g_string_chunk_insert(p->uid_string_chunk, uid), GINT_TO_POINTER (1));
}
}
@@ -2101,7 +2101,7 @@ change_info_recent_uid(CamelFolderChange
/* always add to recent, but dont let anyone else know */
if (!g_hash_table_lookup_extended(p->uid_stored, uid, (void **)&olduid, (void **)&olduids)) {
- olduid = e_mempool_strdup(p->uid_pool, uid);
+ olduid = g_string_chunk_insert(p->uid_string_chunk, uid);
}
g_ptr_array_add(info->uid_recent, olduid);
}
@@ -2117,7 +2117,7 @@ change_info_filter_uid(CamelFolderChange
/* always add to filter, but dont let anyone else know */
if (!g_hash_table_lookup_extended(p->uid_stored, uid, (void **)&olduid, (void **)&olduids)) {
- olduid = e_mempool_strdup(p->uid_pool, uid);
+ olduid = g_string_chunk_insert(p->uid_string_chunk, uid);
}
g_ptr_array_add(p->uid_filter, olduid);
}
@@ -2182,7 +2182,7 @@ camel_folder_change_info_add_uid(CamelFo
return;
}
- olduid = e_mempool_strdup(p->uid_pool, uid);
+ olduid = g_string_chunk_insert(p->uid_string_chunk, uid);
g_ptr_array_add(info->uid_added, olduid);
g_hash_table_insert(p->uid_stored, olduid, info->uid_added);
}
@@ -2216,7 +2216,7 @@ camel_folder_change_info_remove_uid(Came
return;
}
- olduid = e_mempool_strdup(p->uid_pool, uid);
+ olduid = g_string_chunk_insert(p->uid_string_chunk, uid);
g_ptr_array_add(info->uid_removed, olduid);
g_hash_table_insert(p->uid_stored, olduid, info->uid_removed);
}
@@ -2245,7 +2245,7 @@ camel_folder_change_info_change_uid(Came
return;
}
- olduid = e_mempool_strdup(p->uid_pool, uid);
+ olduid = g_string_chunk_insert(p->uid_string_chunk, uid);
g_ptr_array_add(info->uid_changed, olduid);
g_hash_table_insert(p->uid_stored, olduid, info->uid_changed);
}
@@ -2314,7 +2314,8 @@ camel_folder_change_info_clear(CamelFold
g_hash_table_destroy(p->uid_stored);
p->uid_stored = g_hash_table_new(g_str_hash, g_str_equal);
g_ptr_array_set_size(p->uid_filter, 0);
- e_mempool_flush(p->uid_pool, TRUE);
+ g_string_chunk_free(p->uid_string_chunk);
+ p->uid_string_chunk = g_string_chunk_new(512);
}
@@ -2338,7 +2339,7 @@ camel_folder_change_info_free(CamelFolde
g_hash_table_destroy(p->uid_stored);
g_ptr_array_free(p->uid_filter, TRUE);
- e_mempool_destroy(p->uid_pool);
+ g_string_chunk_free(p->uid_string_chunk);
g_free(p);
g_ptr_array_free(info->uid_added, TRUE);
--- evolution-data-server-1.11.3/camel/camel-folder-summary.c.kill-ememory 2007-06-01 03:06:38.000000000 -0400
+++ evolution-data-server-1.11.3/camel/camel-folder-summary.c 2007-06-04 12:28:31.000000000 -0400
@@ -134,10 +134,6 @@ camel_folder_summary_init (CamelFolderSu
s->message_info_chunks = NULL;
s->content_info_chunks = NULL;
-#if defined (DOESTRV) || defined (DOEPOOLV)
- s->message_info_strings = CAMEL_MESSAGE_INFO_LAST;
-#endif
-
s->version = CAMEL_FOLDER_SUMMARY_VERSION;
s->flags = 0;
s->time = 0;
@@ -875,13 +871,6 @@ camel_folder_summary_add(CamelFolderSumm
CAMEL_SUMMARY_LOCK(s, summary_lock);
-/* unnecessary for pooled vectors */
-#ifdef DOESTRV
- /* this is vitally important, and also if this is ever modified, then
- the hash table needs to be resynced */
- info->strings = e_strv_pack(info->strings);
-#endif
-
g_ptr_array_add(s->messages, info);
g_hash_table_insert(s->messages_uid, (char *)camel_message_info_uid(info), info);
s->flags |= CAMEL_SUMMARY_DIRTY;
--- evolution-data-server-1.11.3/camel/providers/local/camel-maildir-summary.c.kill-ememory 2007-05-09 00:09:30.000000000 -0400
+++ evolution-data-server-1.11.3/camel/providers/local/camel-maildir-summary.c 2007-06-04 12:28:31.000000000 -0400
@@ -129,10 +129,6 @@ camel_maildir_summary_init (CamelMaildir
s->message_info_size = sizeof(CamelMaildirMessageInfo);
s->content_info_size = sizeof(CamelMaildirMessageContentInfo);
-#if defined (DOEPOOLV) || defined (DOESTRV)
- s->message_info_strings = CAMEL_MAILDIR_INFO_LAST;
-#endif
-
if (gethostname(hostname, 256) == 0) {
o->priv->hostname = g_strdup(hostname);
} else {
@@ -329,11 +325,9 @@ static CamelMessageInfo *message_info_ne
static void message_info_free(CamelFolderSummary *s, CamelMessageInfo *mi)
{
-#if !defined (DOEPOOLV) && !defined (DOESTRV)
CamelMaildirMessageInfo *mdi = (CamelMaildirMessageInfo *)mi;
g_free(mdi->filename);
-#endif
((CamelFolderSummaryClass *) parent_class)->message_info_free(s, mi);
}
@@ -412,7 +406,7 @@ static int maildir_summary_load(CamelLoc
struct dirent *d;
CamelMaildirSummary *mds = (CamelMaildirSummary *)cls;
char *uid;
- EMemPool *pool;
+ GStringChunk *string_chunk;
int ret;
cur = g_strdup_printf("%s/cur", cls->folder_path);
@@ -429,7 +423,7 @@ static int maildir_summary_load(CamelLoc
}
mds->priv->load_map = g_hash_table_new(g_str_hash, g_str_equal);
- pool = e_mempool_new(1024, 512, E_MEMPOOL_ALIGN_BYTE);
+ string_chunk = g_string_chunk_new(1024);
while ( (d = readdir(dir)) ) {
if (d->d_name[0] == '.')
@@ -438,13 +432,13 @@ static int maildir_summary_load(CamelLoc
/* map the filename -> uid */
uid = strchr(d->d_name, ':');
if (uid) {
- int len = uid-d->d_name;
- uid = e_mempool_alloc(pool, len+1);
- memcpy(uid, d->d_name, len);
- uid[len] = 0;
- g_hash_table_insert(mds->priv->load_map, uid, e_mempool_strdup(pool, d->d_name));
+ char *cp = uid;
+ *cp = '\0';
+ uid = g_string_chunk_insert(string_chunk, uid);
+ *cp = ':';
+ g_hash_table_insert(mds->priv->load_map, uid, g_string_chunk_insert(string_chunk, d->d_name));
} else {
- uid = e_mempool_strdup(pool, d->d_name);
+ uid = g_string_chunk_insert(string_chunk, d->d_name);
g_hash_table_insert(mds->priv->load_map, uid, uid);
}
}
@@ -455,7 +449,7 @@ static int maildir_summary_load(CamelLoc
g_hash_table_destroy(mds->priv->load_map);
mds->priv->load_map = NULL;
- e_mempool_destroy(pool);
+ g_string_chunk_free(string_chunk);
return ret;
}
@@ -621,23 +615,8 @@ maildir_summary_check(CamelLocalSummary
filename = camel_maildir_info_filename(mdi);
/* TODO: only store the extension in the mdi->filename struct, not the whole lot */
if (filename == NULL || strcmp(filename, d->d_name) != 0) {
-#ifdef DOESTRV
-#warning "cannot modify the estrv after its been setup, for mt-safe code"
- CAMEL_SUMMARY_LOCK(s, summary_lock);
- /* need to update the summary hash ref */
- g_hash_table_remove(s->messages_uid, camel_message_info_uid(info));
- info->strings = e_strv_set_ref(info->strings, CAMEL_MAILDIR_INFO_FILENAME, d->d_name);
- info->strings = e_strv_pack(info->strings);
- g_hash_table_insert(s->messages_uid, (char *)camel_message_info_uid(info), info);
- CAMEL_SUMMARY_UNLOCK(s, summary_lock);
-#else
-# ifdef DOEPOOLV
- info->strings = e_poolv_set(info->strings, CAMEL_MAILDIR_INFO_FILENAME, d->d_name, FALSE);
-# else
g_free(mdi->filename);
mdi->filename = g_strdup(d->d_name);
-# endif
-#endif
}
camel_message_info_free(info);
}
@@ -727,9 +706,6 @@ maildir_summary_sync(CamelLocalSummary *
int count, i;
CamelMessageInfo *info;
CamelMaildirMessageInfo *mdi;
-#ifdef DOESTRV
- CamelFolderSummary *s = (CamelFolderSummary *)cls;
-#endif
char *name;
struct stat st;
@@ -775,26 +751,8 @@ maildir_summary_sync(CamelLocalSummary *
/* we'll assume it didn't work, but dont change anything else */
g_free(newname);
} else {
- /* TODO: If this is made mt-safe, then this code could be a problem, since
- the estrv is being modified.
- Sigh, this may mean the maildir name has to be cached another way */
-#ifdef DOESTRV
-#warning "cannot modify the estrv after its been setup, for mt-safe code"
- CAMEL_SUMMARY_LOCK(s, summary_lock);
- /* need to update the summary hash ref */
- g_hash_table_remove(s->messages_uid, camel_message_info_uid(info));
- info->strings = e_strv_set_ref_free(info->strings, CAMEL_MAILDIR_INFO_FILENAME, newname);
- info->strings = e_strv_pack(info->strings);
- g_hash_table_insert(s->messages_uid, (char *)camel_message_info_uid(info), info);
- CAMEL_SUMMARY_UNLOCK(s, summary_lock);
-#else
-# ifdef DOEPOOLV
- info->strings = e_poolv_set(info->strings, CAMEL_MAILDIR_INFO_FILENAME, newname, TRUE);
-# else
g_free(mdi->filename);
mdi->filename = newname;
-# endif
-#endif
}
g_free(name);
g_free(dest);
--- evolution-data-server-1.11.3/camel/camel-folder-search.c.kill-ememory 2007-05-09 00:09:33.000000000 -0400
+++ evolution-data-server-1.11.3/camel/camel-folder-search.c 2007-06-04 12:28:31.000000000 -0400
@@ -53,7 +53,7 @@
#define r(x)
struct _CamelFolderSearchPrivate {
- GHashTable *mempool_hash;
+ GHashTable *string_chunk_hash;
CamelException *ex;
CamelFolderThread *threads;
@@ -123,23 +123,23 @@ camel_folder_search_init (CamelFolderSea
obj->sexp = e_sexp_new();
- /* use a hash of mempools to associate the returned uid lists with
- the backing mempool. yes pretty weird, but i didn't want to change
- the api just yet */
+ /* use a hash of string chunks to associate the returned uid lists
+ * with the backing string chunk. yes pretty weird, but i didn't
+ * want to change the api just yet */
- p->mempool_hash = g_hash_table_new(0, 0);
+ p->string_chunk_hash = g_hash_table_new(0, 0);
}
static void
-free_mempool(void *key, void *value, void *data)
+free_string_chunk (void *key, void *value, void *data)
{
GPtrArray *uids = key;
- EMemPool *pool = value;
+ GStringChunk *string_chunk = value;
g_warning("Search closed with outstanding result unfreed: %p", uids);
g_ptr_array_free(uids, TRUE);
- e_mempool_destroy(pool);
+ g_string_chunk_free(string_chunk);
}
static void
@@ -154,8 +154,8 @@ camel_folder_search_finalize (CamelObjec
g_hash_table_destroy(search->summary_hash);
g_free(search->last_search);
- g_hash_table_foreach(p->mempool_hash, free_mempool, obj);
- g_hash_table_destroy(p->mempool_hash);
+ g_hash_table_foreach(p->string_chunk_hash, free_string_chunk, obj);
+ g_hash_table_destroy(p->string_chunk_hash);
g_free(p);
}
@@ -345,7 +345,7 @@ camel_folder_search_execute_expression(C
GPtrArray *matches;
int i;
GHashTable *results;
- EMemPool *pool;
+ GStringChunk *string_chunk;
struct _CamelFolderSearchPrivate *p = _PRIVATE(search);
p->ex = ex;
@@ -374,11 +374,7 @@ camel_folder_search_execute_expression(C
/* now create a folder summary to return?? */
if (r->type == ESEXP_RES_ARRAY_PTR) {
d(printf("got result ...\n"));
- /* we use a mempool to store the strings, packed in tight as possible, and freed together */
- /* because the strings are often short (like <8 bytes long), we would be wasting appx 50%
- of memory just storing the size tag that malloc assigns us and alignment padding, so this
- gets around that (and is faster to allocate and free as a bonus) */
- pool = e_mempool_new(512, 256, E_MEMPOOL_ALIGN_BYTE);
+ string_chunk = g_string_chunk_new(512);
if (search->summary) {
/* reorder result in summary order */
results = g_hash_table_new(g_str_hash, g_str_equal);
@@ -390,20 +386,21 @@ camel_folder_search_execute_expression(C
CamelMessageInfo *info = g_ptr_array_index(search->summary, i);
char *uid = (char *)camel_message_info_uid(info);
if (g_hash_table_lookup(results, uid)) {
- g_ptr_array_add(matches, e_mempool_strdup(pool, uid));
+ g_ptr_array_add(matches, g_string_chunk_insert(string_chunk, uid));
}
}
g_hash_table_destroy(results);
} else {
for (i=0;i<r->value.ptrarray->len;i++) {
d(printf("adding match: %s\n", (char *)g_ptr_array_index(r->value.ptrarray, i)));
- g_ptr_array_add(matches, e_mempool_strdup(pool, g_ptr_array_index(r->value.ptrarray, i)));
+ g_ptr_array_add(matches, g_string_chunk_insert(string_chunk, g_ptr_array_index(r->value.ptrarray, i)));
}
}
- /* instead of putting the mempool_hash in the structure, we keep the api clean by
- putting a reference to it in a hashtable. Lets us do some debugging and catch
- unfree'd results as well. */
- g_hash_table_insert(p->mempool_hash, matches, pool);
+ /* instead of putting the string_chunk_hash in the structure,
+ * we keep the api clean by putting a reference to it in a
+ * hashtable. Lets us do some debugging and catch unfree'd
+ * results as well. */
+ g_hash_table_insert(p->string_chunk_hash, matches, string_chunk);
} else {
g_warning("Search returned an invalid result type");
}
@@ -444,7 +441,7 @@ camel_folder_search_search(CamelFolderSe
GPtrArray *matches = NULL, *summary_set;
int i;
GHashTable *results;
- EMemPool *pool;
+ GStringChunk *string_chunk;
struct _CamelFolderSearchPrivate *p = _PRIVATE(search);
g_assert(search->folder);
@@ -496,12 +493,7 @@ camel_folder_search_search(CamelFolderSe
/* now create a folder summary to return?? */
if (r->type == ESEXP_RES_ARRAY_PTR) {
d(printf("got result ...\n"));
-
- /* we use a mempool to store the strings, packed in tight as possible, and freed together */
- /* because the strings are often short (like <8 bytes long), we would be wasting appx 50%
- of memory just storing the size tag that malloc assigns us and alignment padding, so this
- gets around that (and is faster to allocate and free as a bonus) */
- pool = e_mempool_new(512, 256, E_MEMPOOL_ALIGN_BYTE);
+ string_chunk = g_string_chunk_new(512);
/* reorder result in summary order */
results = g_hash_table_new(g_str_hash, g_str_equal);
for (i=0;i<r->value.ptrarray->len;i++) {
@@ -513,14 +505,15 @@ camel_folder_search_search(CamelFolderSe
CamelMessageInfo *info = g_ptr_array_index(summary_set, i);
char *uid = (char *)camel_message_info_uid(info);
if (g_hash_table_lookup(results, uid))
- g_ptr_array_add(matches, e_mempool_strdup(pool, uid));
+ g_ptr_array_add(matches, g_string_chunk_insert(string_chunk, uid));
}
g_hash_table_destroy(results);
- /* instead of putting the mempool_hash in the structure, we keep the api clean by
- putting a reference to it in a hashtable. Lets us do some debugging and catch
- unfree'd results as well. */
- g_hash_table_insert(p->mempool_hash, matches, pool);
+ /* instead of putting the string_chunk_hash in the structure,
+ * we keep the api clean by putting a reference to it in a
+ * hashtable. Lets us do some debugging and catch unfree'd
+ * results as well. */
+ g_hash_table_insert(p->string_chunk_hash, matches, string_chunk);
} else {
g_warning("Search returned an invalid result type");
}
@@ -553,12 +546,12 @@ void camel_folder_search_free_result(Cam
{
int i;
struct _CamelFolderSearchPrivate *p = _PRIVATE(search);
- EMemPool *pool;
+ GStringChunk *string_chunk;
- pool = g_hash_table_lookup(p->mempool_hash, result);
- if (pool) {
- e_mempool_destroy(pool);
- g_hash_table_remove(p->mempool_hash, result);
+ string_chunk = g_hash_table_lookup(p->string_chunk_hash, result);
+ if (string_chunk) {
+ g_string_chunk_free(string_chunk);
+ g_hash_table_remove(p->string_chunk_hash, result);
} else {
for (i=0;i<result->len;i++)
g_free(g_ptr_array_index(result, i));

File diff suppressed because it is too large Load Diff

View File

@ -1,147 +0,0 @@
diff -up evolution-data-server-2.21.2/libedataserverui/e-passwords.c.base64 evolution-data-server-2.21.2/libedataserverui/e-passwords.c
--- evolution-data-server-2.21.2/libedataserverui/e-passwords.c.base64 2007-11-08 19:59:38.000000000 -0500
+++ evolution-data-server-2.21.2/libedataserverui/e-passwords.c 2007-11-15 13:39:13.000000000 -0500
@@ -214,7 +214,7 @@ ep_password_decode (const gchar *encoded
* to the decoded data to make it a nul-terminated string. */
gchar *password;
- gsize length;
+ gsize length = 0;
password = (gchar *) g_base64_decode (encoded_password, &length);
password = g_realloc (password, length + 1);
diff -up evolution-data-server-2.21.2/servers/exchange/lib/e2k-autoconfig.c.base64 evolution-data-server-2.21.2/servers/exchange/lib/e2k-autoconfig.c
--- evolution-data-server-2.21.2/servers/exchange/lib/e2k-autoconfig.c.base64 2007-10-23 05:57:29.000000000 -0400
+++ evolution-data-server-2.21.2/servers/exchange/lib/e2k-autoconfig.c 2007-11-15 13:39:13.000000000 -0500
@@ -306,8 +306,6 @@ get_ctx_auth_handler (SoupMessage *msg,
E2kAutoconfig *ac = user_data;
const GSList *headers;
const char *challenge_hdr;
- guchar *challenge;
- gsize length;
ac->saw_ntlm = ac->saw_basic = FALSE;
headers = soup_message_get_header_list (msg->response_headers,
@@ -322,6 +320,9 @@ get_ctx_auth_handler (SoupMessage *msg,
if (!strncmp (challenge_hdr, "NTLM ", 5) &&
(!ac->w2k_domain || !ac->nt_domain)) {
+ guchar *challenge;
+ gsize length = 0;
+
challenge = g_base64_decode (challenge_hdr + 5, &length);
if (!ac->nt_domain)
ac->nt_domain_defaulted = TRUE;
diff -up evolution-data-server-2.21.2/servers/exchange/lib/e2k-result.c.base64 evolution-data-server-2.21.2/servers/exchange/lib/e2k-result.c
--- evolution-data-server-2.21.2/servers/exchange/lib/e2k-result.c.base64 2007-10-23 05:57:29.000000000 -0400
+++ evolution-data-server-2.21.2/servers/exchange/lib/e2k-result.c 2007-11-15 13:39:13.000000000 -0500
@@ -45,7 +45,7 @@ prop_get_binary_array (E2kResult *result
byte_array = g_byte_array_new ();
if (node->xmlChildrenNode && node->xmlChildrenNode->content) {
guchar *data;
- gsize length;
+ gsize length = 0;
data = g_base64_decode (
node->xmlChildrenNode->content, &length);
@@ -84,7 +84,7 @@ prop_get_binary (E2kResult *result, cons
byte_array = g_byte_array_new ();
if (node->xmlChildrenNode && node->xmlChildrenNode->content) {
guchar *data;
- gsize length;
+ gsize length = 0;
data = g_base64_decode (
node->xmlChildrenNode->content, &length);
diff -up evolution-data-server-2.21.2/addressbook/tests/ebook/test-photo.c.base64 evolution-data-server-2.21.2/addressbook/tests/ebook/test-photo.c
--- evolution-data-server-2.21.2/addressbook/tests/ebook/test-photo.c.base64 2007-10-23 05:57:35.000000000 -0400
+++ evolution-data-server-2.21.2/addressbook/tests/ebook/test-photo.c 2007-11-15 13:39:13.000000000 -0500
@@ -28,15 +28,19 @@ main (int argc, char **argv)
{
EContact *contact;
EContactPhoto *photo, *new_photo;
+ guchar *data;
+ gsize length = 0;
g_type_init ();
contact = e_contact_new ();
+ data = g_base64_decode (photo_data, &length);
photo = g_new (EContactPhoto, 1);
photo->type = E_CONTACT_PHOTO_TYPE_INLINED;
photo->data.inlined.mime_type = NULL;
- photo->data.inlined.data = g_base64_decode (photo_data, &photo->data.inlined.length);
+ photo->data.inlined.data = data;
+ photo->data.inlined.length = length;
/* set the photo */
e_contact_set (contact, E_CONTACT_PHOTO, photo);
diff -up evolution-data-server-2.21.2/addressbook/libebook/e-vcard.c.base64 evolution-data-server-2.21.2/addressbook/libebook/e-vcard.c
--- evolution-data-server-2.21.2/addressbook/libebook/e-vcard.c.base64 2007-10-23 05:57:37.000000000 -0400
+++ evolution-data-server-2.21.2/addressbook/libebook/e-vcard.c 2007-11-15 13:39:13.000000000 -0500
@@ -1780,7 +1780,7 @@ e_vcard_attribute_get_values_decoded (EV
case EVC_ENCODING_BASE64:
for (l = attr->values; l; l = l->next) {
guchar *decoded;
- gsize len;
+ gsize len = 0;
decoded = g_base64_decode (l->data, &len);
attr->decoded_values = g_list_prepend (attr->decoded_values, g_string_new_len (decoded, len));
diff -up evolution-data-server-2.21.2/camel/camel-sasl.c.base64 evolution-data-server-2.21.2/camel/camel-sasl.c
--- evolution-data-server-2.21.2/camel/camel-sasl.c.base64 2007-10-23 05:57:18.000000000 -0400
+++ evolution-data-server-2.21.2/camel/camel-sasl.c 2007-11-15 13:39:30.000000000 -0500
@@ -134,9 +134,9 @@ camel_sasl_challenge_base64 (CamelSasl *
g_return_val_if_fail (CAMEL_IS_SASL (sasl), NULL);
- if (token) {
+ if (token && *token) {
guchar *data;
- gsize length;
+ gsize length = 0;
data = g_base64_decode (token, &length);
token_binary = g_byte_array_new ();
diff -up evolution-data-server-2.21.2/camel/camel-mime-utils.c.base64 evolution-data-server-2.21.2/camel/camel-mime-utils.c
--- evolution-data-server-2.21.2/camel/camel-mime-utils.c.base64 2007-11-09 13:13:12.000000000 -0500
+++ evolution-data-server-2.21.2/camel/camel-mime-utils.c 2007-11-15 13:39:13.000000000 -0500
@@ -192,7 +192,7 @@ size_t
camel_base64_decode_simple (char *data, size_t len)
{
guchar *out_data;
- gsize out_len;
+ gsize out_len = 0;
g_return_val_if_fail (data != NULL, 0);
g_return_val_if_fail (strlen (data) > 1, 0);
diff -up evolution-data-server-2.21.2/camel/providers/groupwise/camel-groupwise-folder.c.base64 evolution-data-server-2.21.2/camel/providers/groupwise/camel-groupwise-folder.c
--- evolution-data-server-2.21.2/camel/providers/groupwise/camel-groupwise-folder.c.base64 2007-10-23 05:56:59.000000000 -0400
+++ evolution-data-server-2.21.2/camel/providers/groupwise/camel-groupwise-folder.c 2007-11-15 13:39:13.000000000 -0500
@@ -1684,7 +1684,7 @@ groupwise_folder_item_to_msg( CamelFolde
EGwItemAttachment *attach = (EGwItemAttachment *)al->data;
if (!g_ascii_strcasecmp (attach->name, "Mime.822")) {
if (attach->size > MAX_ATTACHMENT_SIZE) {
- int len_iter = 0, t_len , offset = 0, t_offset = 0;
+ int t_len , offset = 0, t_offset = 0;
char *t_attach = NULL;
GString *gstr = g_string_new (NULL);
@@ -1694,6 +1694,7 @@ groupwise_folder_item_to_msg( CamelFolde
attach->id, t_offset, MAX_ATTACHMENT_SIZE,
(const char **)&t_attach, &t_len, &offset);
if (status == E_GW_CONNECTION_STATUS_OK) {
+ gsize len_iter = 0;
char *temp = NULL;
temp = g_base64_decode(t_attach, &len_iter);
@@ -1831,7 +1832,7 @@ groupwise_folder_item_to_msg( CamelFolde
attach->id, t_offset, MAX_ATTACHMENT_SIZE,
(const char **)&t_attach, &t_len, &offset);
if (status == E_GW_CONNECTION_STATUS_OK) {
- int len_iter = 0;
+ gsize len_iter = 0;
char *temp = NULL;
temp = g_base64_decode(t_attach, &len_iter);

View File

@ -0,0 +1,19 @@
diff -up evolution-data-server-2.21.5/libedataserverui/e-passwords.c.password-dialog evolution-data-server-2.21.5/libedataserverui/e-passwords.c
--- evolution-data-server-2.21.5/libedataserverui/e-passwords.c.password-dialog 2008-01-16 12:23:51.000000000 -0500
+++ evolution-data-server-2.21.5/libedataserverui/e-passwords.c 2008-01-16 12:24:18.000000000 -0500
@@ -873,12 +873,12 @@ ep_ask_password (EPassMsg *msg)
widget = gtk_dialog_new_with_buttons (
msg->title, msg->parent, 0,
- GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
- GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
gtk_dialog_set_has_separator (GTK_DIALOG (widget), FALSE);
gtk_dialog_set_default_response (
- GTK_DIALOG (widget), GTK_RESPONSE_ACCEPT);
+ GTK_DIALOG (widget), GTK_RESPONSE_OK);
gtk_window_set_resizable (GTK_WINDOW (widget), FALSE);
gtk_container_set_border_width (GTK_CONTAINER (widget), 12);
password_dialog = GTK_DIALOG (widget);

View File

@ -27,7 +27,7 @@
Name: evolution-data-server Name: evolution-data-server
Version: 2.21.5 Version: 2.21.5
Release: 1%{?dist} Release: 2%{?dist}
License: LGPL License: LGPL
Group: System Environment/Libraries Group: System Environment/Libraries
Summary: Backend data server for Evolution Summary: Backend data server for Evolution
@ -47,23 +47,16 @@ Patch11: evolution-data-server-1.8.0-no-gnome-common.patch
Patch12: evolution-data-server-1.7.91-maybe-fix-crash.patch Patch12: evolution-data-server-1.7.91-maybe-fix-crash.patch
# RH bug #215702 / GNOME bug #487988 # RH bug #215702 / GNOME bug #487988
Patch14: evolution-data-server-1.8.0-fix-ldap-query.patch Patch13: evolution-data-server-1.8.0-fix-ldap-query.patch
# GNOME bug #363695
Patch15: evolution-data-server-1.9.1-kill-ememory.patch
# GNOME bug #376991
# XXX Disabled due to outstanding issues.
#Patch16: evolution-data-server-1.9.92-e-passwords.patch
# GNOME bug #373146 # GNOME bug #373146
Patch18: evolution-data-server-1.10.1-camel-folder-summary-crash.patch Patch14: evolution-data-server-1.10.1-camel-folder-summary-crash.patch
# RH bug #243296 # RH bug #243296
Patch19: evolution-data-server-1.11.5-fix-64bit-acinclude.patch Patch15: evolution-data-server-1.11.5-fix-64bit-acinclude.patch
# RH bug #384741 / GNOME bug #474000 # GNOME bug #509644
Patch20: evolution-data-server-2.21.2-base64.patch Patch16: evolution-data-server-2.21.5-password-dialog.patch
### Build Dependencies ### ### Build Dependencies ###
@ -140,12 +133,10 @@ This package contains developer documentation for %{name}.
%patch10 -p1 -b .ldaphack %patch10 -p1 -b .ldaphack
%patch11 -p1 -b .no-gnome-common %patch11 -p1 -b .no-gnome-common
%patch12 -p1 -b .maybe-fix-crash %patch12 -p1 -b .maybe-fix-crash
%patch14 -p1 -b .fix-ldap-query %patch13 -p1 -b .fix-ldap-query
#%patch15 -p1 -b .kill-ememory %patch14 -p1 -b .camel-folder-summary-crash
##%patch16 -p1 -b .e-passwords %patch15 -p1 -b .fix-64bit-acinclude
#%patch18 -p1 -b .camel-folder-summary-crash %patch16 -p1 -b .password-dialog
#%patch19 -p1 -b .fix-64bit-acinclude
#%patch20 -p1 -b .base64
mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/include
mkdir -p krb5-fakeprefix/lib mkdir -p krb5-fakeprefix/lib
@ -388,6 +379,12 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/gtk-doc/html/libedataserverui %{_datadir}/gtk-doc/html/libedataserverui
%changelog %changelog
* Wed Jan 16 2008 Matthew Barnes <mbarnes@redhat.com> - 2.21.5-2.fc9
- Add patch for GNOME bug #509644 (password dialog breakage).
- Remove patch for RH bug #384741 (fixed upstream).
- Remove patch for GNOME bug #363695 (obsolete).
- Remove patch for GNOME bug #376991 (obsolete).
* Mon Jan 14 2008 Matthew Barnes <mbarnes@redhat.com> - 2.21.5-1.fc9 * Mon Jan 14 2008 Matthew Barnes <mbarnes@redhat.com> - 2.21.5-1.fc9
- Update to 2.21.5 - Update to 2.21.5