gmime r1402 - in trunk: . gmime
- From: fejj svn gnome org
- To: svn-commits-list gnome org
- Subject: gmime r1402 - in trunk: . gmime
- Date: Sat, 16 Aug 2008 16:16:57 +0000 (UTC)
Author: fejj
Date: Sat Aug 16 16:16:56 2008
New Revision: 1402
URL: http://svn.gnome.org/viewvc/gmime?rev=1402&view=rev
Log:
2008-08-16 Jeffrey Stedfast <fejj novell com>
* gmime/gmime-message.c (process_header): Protect against passing
a NULL list to internet_address_list_to_string().
(g_mime_message_add_recipient): Create a new InternetAddressList
if it doesn't already exist in the hash table.
(message_add_recipients_from_string): Protect against passing a
NULL list to internet_address_list_concat().
* gmime/internet-address.c (_internet_address_list_to_string):
Fixed the logic to avoid adding a ',' after the last email
address.
Modified:
trunk/ChangeLog
trunk/gmime/gmime-message.c
trunk/gmime/internet-address.c
Modified: trunk/gmime/gmime-message.c
==============================================================================
--- trunk/gmime/gmime-message.c (original)
+++ trunk/gmime/gmime-message.c Sat Aug 16 16:16:56 2008
@@ -169,7 +169,8 @@
{
InternetAddressList *recipients = value;
- internet_address_list_destroy (recipients);
+ if (recipients)
+ internet_address_list_destroy (recipients);
return TRUE;
}
@@ -634,15 +635,21 @@
switch (i) {
case HEADER_FROM:
g_free (message->from);
- addrlist = internet_address_list_parse_string (value);
- message->from = internet_address_list_to_string (addrlist, FALSE);
- internet_address_list_destroy (addrlist);
+ if ((addrlist = internet_address_list_parse_string (value))) {
+ message->from = internet_address_list_to_string (addrlist, FALSE);
+ internet_address_list_destroy (addrlist);
+ } else {
+ message->from = NULL;
+ }
break;
case HEADER_REPLY_TO:
g_free (message->reply_to);
- addrlist = internet_address_list_parse_string (value);
- message->reply_to = internet_address_list_to_string (addrlist, FALSE);
- internet_address_list_destroy (addrlist);
+ if ((addrlist = internet_address_list_parse_string (value))) {
+ message->reply_to = internet_address_list_to_string (addrlist, FALSE);
+ internet_address_list_destroy (addrlist);
+ } else {
+ message->reply_to = NULL;
+ }
break;
case HEADER_TO:
message_add_recipients_from_string (message, GMIME_RECIPIENT_TYPE_TO, value);
@@ -1057,8 +1064,10 @@
ia = internet_address_new_name (name, address);
- recipients = g_hash_table_lookup (message->recipients, recipient_types[type]);
- g_hash_table_remove (message->recipients, recipient_types[type]);
+ if ((recipients = g_hash_table_lookup (message->recipients, recipient_types[type])))
+ g_hash_table_remove (message->recipients, recipient_types[type]);
+ else
+ recipients = internet_address_list_new ();
internet_address_list_add (recipients, ia);
internet_address_unref (ia);
@@ -1073,15 +1082,20 @@
{
InternetAddressList *recipients, *addrlist;
- recipients = g_hash_table_lookup (message->recipients, recipient_types[type]);
- g_hash_table_remove (message->recipients, recipient_types[type]);
+ if ((recipients = g_hash_table_lookup (message->recipients, recipient_types[type])))
+ g_hash_table_remove (message->recipients, recipient_types[type]);
if ((addrlist = internet_address_list_parse_string (str))) {
- internet_address_list_concat (recipients, addrlist);
- internet_address_list_destroy (addrlist);
+ if (recipients != NULL) {
+ internet_address_list_concat (recipients, addrlist);
+ internet_address_list_destroy (addrlist);
+ } else {
+ recipients = addrlist;
+ }
}
- g_hash_table_insert (message->recipients, (char *) recipient_types[type], recipients);
+ if (recipients)
+ g_hash_table_insert (message->recipients, (char *) recipient_types[type], recipients);
}
Modified: trunk/gmime/internet-address.c
==============================================================================
--- trunk/gmime/internet-address.c (original)
+++ trunk/gmime/internet-address.c Sat Aug 16 16:16:56 2008
@@ -835,7 +835,7 @@
for (i = 0; i < list->array->len; i++) {
_internet_address_to_string (list->array->pdata[i], flags, linelen, string);
- if (i < list->array->len) {
+ if (i + 1 < list->array->len) {
g_string_append (string, ", ");
*linelen += 2;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]