diff options
author | Jon Trowbridge <trow@ximian.com> | 2001-10-28 10:45:16 +0800 |
---|---|---|
committer | Jon Trowbridge <trow@src.gnome.org> | 2001-10-28 10:45:16 +0800 |
commit | 14557ba81ad6630a1012430e8965c0f08edcc0f0 (patch) | |
tree | 6bf0484d6d2f26317551bdfa30ce6e1e28f7827f /addressbook | |
parent | 70708440caf29c52e8d2a07872304a4874590fbe (diff) | |
download | gsoc2013-evolution-14557ba81ad6630a1012430e8965c0f08edcc0f0.tar.gz gsoc2013-evolution-14557ba81ad6630a1012430e8965c0f08edcc0f0.tar.zst gsoc2013-evolution-14557ba81ad6630a1012430e8965c0f08edcc0f0.zip |
Don't leak stuff. (Bug #13709)
2001-10-27 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-book.c (activate_factories_for_uri): Don't leak
stuff. (Bug #13709)
svn path=/trunk/; revision=14267
Diffstat (limited to 'addressbook')
-rw-r--r-- | addressbook/ChangeLog | 5 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-book.c | 25 |
2 files changed, 20 insertions, 10 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index cc5f58faa6..bf648b9a2f 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,8 @@ +2001-10-27 Jon Trowbridge <trow@ximian.com> + + * backend/ebook/e-book.c (activate_factories_for_uri): Don't leak + stuff. (Bug #13709) + 2001-10-27 Christopher James Lahey <clahey@ximian.com> * backend/ebook/e-destination.c (name_and_email_simple_query_cb, diff --git a/addressbook/backend/ebook/e-book.c b/addressbook/backend/ebook/e-book.c index 41d5ec7e06..e331df149e 100644 --- a/addressbook/backend/ebook/e-book.c +++ b/addressbook/backend/ebook/e-book.c @@ -609,9 +609,10 @@ static gboolean activate_factories_for_uri (EBook *book, const char *uri) { CORBA_Environment ev; - OAF_ServerInfoList *info_list; + OAF_ServerInfoList *info_list = NULL; int i; char *protocol, *query, *colon; + gboolean retval = FALSE; colon = strchr (uri, ':'); if (!colon) { @@ -632,18 +633,16 @@ activate_factories_for_uri (EBook *book, const char *uri) if (ev._major != CORBA_NO_EXCEPTION) { g_warning ("Eeek! Cannot perform OAF query for book factories."); - return FALSE; + CORBA_exception_free (&ev); + goto shutdown; } if (info_list->_length == 0) { g_warning ("Can't find installed BookFactory that handles protocol '%s'.", protocol); - g_free (protocol); CORBA_exception_free (&ev); - return FALSE; + goto shutdown; } - g_free (protocol); - g_free (query); CORBA_exception_free (&ev); for (i = 0; i < info_list->_length; i ++) { @@ -662,14 +661,20 @@ activate_factories_for_uri (EBook *book, const char *uri) factory); } - CORBA_free (info_list); - if (!book->priv->book_factories) { g_warning ("Couldn't activate any book factories."); - return FALSE; + goto shutdown; } - return TRUE; + retval = TRUE; + + shutdown: + if (info_list) + CORBA_free (info_list); + g_free (query); + g_free (protocol); + + return retval; } gboolean |