Re: [evolution-patches] File descriptor leak patch for Evolution
- From: Srinivasa Ragavan <sragavan novell com>
- To: Jules Colding <colding omesc com>
- Cc: Evolution Patches <evolution-patches gnome org>
- Subject: Re: [evolution-patches] File descriptor leak patch for Evolution
- Date: Tue, 29 May 2007 10:40:57 +0530
On Mon, 2007-05-28 at 17:04 +0200, Jules Colding wrote:
> Hi,
>
> The patch below will fix the very few file descriptor leaks that I've
> found in Evolution. I've reviewed the source for leaks from open() and
> opendir(). Only a few was found.
>
> May I commit?
Please commit.
-Srini.
>
> Best regards and thanks,
> jules
>
>
>
> Index: shell/ChangeLog
> ===================================================================
> --- shell/ChangeLog (revision 33593)
> +++ shell/ChangeLog (working copy)
> @@ -1,3 +1,7 @@
> +2007-05-28 Jules Colding <colding omesc com>
> +
> + * main.c (main): Prevent dup2() and close() on -1
> +
> 2007-05-13 Matthew Barnes <mbarnes redhat com>
>
> * e-shell.c (impl_Shell_handleURI):
> Index: shell/main.c
> ===================================================================
> --- shell/main.c (revision 33593)
> +++ shell/main.c (working copy)
> @@ -541,7 +541,7 @@
> int fd;
>
> fd = g_open (evolution_debug_log, O_WRONLY | O_CREAT | O_TRUNC, 0600);
> - if (fd) {
> + if (fd != -1) {
> dup2 (fd, STDOUT_FILENO);
> dup2 (fd, STDERR_FILENO);
> close (fd);
> Index: mail/ChangeLog
> ===================================================================
> --- mail/ChangeLog (revision 33593)
> +++ mail/ChangeLog (working copy)
> @@ -1,3 +1,17 @@
> +2007-05-28 Jules Colding <colding omesc com>
> +
> + * em-utils.c (em_utils_selection_set_urilist): Fix file leak
> + (em_utils_selection_get_urilist): Fix file leak
> +
> + * importers/evolution-outlook-importer.c (import_outlook_import): Fix file leak
> +
> +2007-05-25 Jules Colding <colding omesc com>
> +
> + * importers/mail-importer.c (import_mbox_import): Impossible code branch commented
> +
> + * importers/netscape-importer.c (netscape_import_filters): Fix file leak
> + (netscape_init_prefs): Fix file leak
> +
> 2007-05-25 Matthew Barnes <mbarnes redhat com>
>
> * mail-send-recv.c:
> Index: mail/em-utils.c
> ===================================================================
> --- mail/em-utils.c (revision 33593)
> +++ mail/em-utils.c (working copy)
> @@ -1115,7 +1115,9 @@
> }
>
> camel_object_unref(fstream);
> - }
> + } else
> + close(fd);
> +
> g_free(uri);
> }
>
> @@ -1154,8 +1156,11 @@
> if (strcmp(url->protocol, "file") == 0
> && (fd = g_open(url->path, O_RDONLY | O_BINARY, 0)) != -1) {
> stream = camel_stream_fs_new_with_fd(fd);
> - res = em_utils_read_messages_from_stream(folder, stream);
> - camel_object_unref(stream);
> + if (stream) {
> + res = em_utils_read_messages_from_stream(folder, stream);
> + camel_object_unref(stream);
> + } else
> + close(fd);
> }
> camel_url_free(url);
> }
> Index: mail/importers/mail-importer.c
> ===================================================================
> --- mail/importers/mail-importer.c (revision 33593)
> +++ mail/importers/mail-importer.c (working copy)
> @@ -223,7 +223,7 @@
>
> mp = camel_mime_parser_new();
> camel_mime_parser_scan_from(mp, TRUE);
> - if (camel_mime_parser_init_with_fd(mp, fd) == -1) {
> + if (camel_mime_parser_init_with_fd(mp, fd) == -1) { /* will never happen - 0 is unconditionally returned */
> goto fail2;
> }
>
> Index: mail/importers/netscape-importer.c
> ===================================================================
> --- mail/importers/netscape-importer.c (revision 33593)
> +++ mail/importers/netscape-importer.c (working copy)
> @@ -1238,7 +1238,7 @@
> exit:
> g_free(user);
> g_object_unref((fc));
> -
> + fclose (mailrule_handle);
> }
>
> /* Email folder & accounts stuff ----------------------------------------------- */
> @@ -1444,6 +1444,7 @@
> g_hash_table_insert (user_prefs, key, value);
> }
>
> + fclose (prefs_handle);
> return;
> }
>
> Index: mail/importers/evolution-outlook-importer.c
> ===================================================================
> --- mail/importers/evolution-outlook-importer.c (revision 33593)
> +++ mail/importers/evolution-outlook-importer.c (working copy)
> @@ -316,6 +316,7 @@
> struct _import_outlook_msg *m = (struct _import_outlook_msg *) mm;
> struct stat st;
> CamelFolder *folder;
> + int fd = -1;
>
> if (stat(m->path, &st) == -1) {
> g_warning("cannot find source file to import '%s': %s", m->path, g_strerror(errno));
> @@ -334,7 +335,6 @@
> CamelOperation *oldcancel = NULL;
> CamelMessageInfo *info;
> GByteArray *buffer;
> - int fd;
> off_t pos;
>
> fd = g_open(m->path, O_RDONLY|O_BINARY, 0);
> @@ -413,6 +413,8 @@
> g_byte_array_free(buffer, TRUE);
> }
> fail:
> + if (fd != -1)
> + close(fd);
> camel_object_unref(folder);
> }
>
>
>
> _______________________________________________
> Evolution-patches mailing list
> Evolution-patches gnome org
> http://mail.gnome.org/mailman/listinfo/evolution-patches
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]