Package: release.debian.org
Severity: normal
Tags: jessie
User: [email protected]
Usertags: pu

I'd like to see an update for #787398 in jessie, as a customer of mine has
hit this bug, and it's a particularly nasty one. 

proposed debdiff:

diff -Nru evolution-data-server-3.12.9~git20141128.5242b0/debian/changelog 
evolution-data-server-3.12.9~git20141128.5242b0/debian/changelog
--- evolution-data-server-3.12.9~git20141128.5242b0/debian/changelog    
2015-03-25 12:16:25.000000000 +0100
+++ evolution-data-server-3.12.9~git20141128.5242b0/debian/changelog    
2016-12-21 18:31:01.000000000 +0100
@@ -1,3 +1,13 @@
+evolution-data-server (3.12.9~git20141128.5242b0-2+deb8u2.1) jessie; 
urgency=medium
+
+  * Non-maintainer upload.
+  * d/p/06_787398_bae0c64_fix_connection_drop.patch: cherry-pick commit
+    bae0c64 from upstream git to fix premature drop of connection with
+    reduced TCP window sizes and resulting loss of data. Closes:
+    #787398.
+
+ -- Wouter Verhelst <[email protected]>  Wed, 21 Dec 2016 18:31:01 +0100
+
 evolution-data-server (3.12.9~git20141128.5242b0-2+deb8u2) unstable; 
urgency=medium
 
   * d/p/05_imapx-Shared-folders-removed-folder-list-refresh.patch: Fix shared
diff -Nru 
evolution-data-server-3.12.9~git20141128.5242b0/debian/patches/06_787398_bae0c64_fix_connection_drop.patch
 
evolution-data-server-3.12.9~git20141128.5242b0/debian/patches/06_787398_bae0c64_fix_connection_drop.patch
--- 
evolution-data-server-3.12.9~git20141128.5242b0/debian/patches/06_787398_bae0c64_fix_connection_drop.patch
  1970-01-01 01:00:00.000000000 +0100
+++ 
evolution-data-server-3.12.9~git20141128.5242b0/debian/patches/06_787398_bae0c64_fix_connection_drop.patch
  2016-12-21 18:31:01.000000000 +0100
@@ -0,0 +1,58 @@
+Description: Make camel_stream_write() try to write all bytes at once
+ The default implementation of CamelStream::write() used
+ g_output_stream_write() method, which could write only a partial content,
+ returning how many bytes had been actually written. That's fine, but not each
+ caller counted with this, thus for example a CamelStreamFilter::write() failed
+ when only partial buffer had been written, which could cause a silent failure
+ on message send. Easier than taking care of the not-whole-buffer-written state
+ at each place of the usage is to use g_output_stream_write_all() function
+ instead, which fails only on errors.
+ .
+ evolution-data-server (3.12.9~git20141128.5242b0-2+deb8u2) unstable; 
urgency=medium
+ .
+   * d/p/05_imapx-Shared-folders-removed-folder-list-refresh.patch: Fix shared
+     IMAP folders disappearing in some situations.
+Author: Milan Crha <[email protected]>
+Origin: upstream, 
https://git.gnome.org/browse/evolution-data-server/commit/?id=bae0c64
+Bug-Debian: https://bugs.debian.org/787398
+Bug-Ubuntu: 
https://bugs.launchpad.net/ubuntu/+source/evolution-data-server/+bug/1442756/
+Forwarded: not-needed
+Last-Update: 2016-12-21
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+
+--- evolution-data-server-3.12.9~git20141128.5242b0.orig/camel/camel-stream.c
++++ evolution-data-server-3.12.9~git20141128.5242b0/camel/camel-stream.c
+@@ -149,20 +149,25 @@ stream_write (CamelStream *stream,
+               GError **error)
+ {
+       GIOStream *base_stream;
+-      gssize n_bytes_written = (gssize) n;
++      gssize n_bytes_written = -1;
+ 
+       base_stream = camel_stream_ref_base_stream (stream);
+ 
+       if (base_stream != NULL) {
+               GOutputStream *output_stream;
++              gsize n_written = 0;
+ 
+               output_stream = g_io_stream_get_output_stream (base_stream);
+               stream->eos = FALSE;
+ 
+-              n_bytes_written = g_output_stream_write (
+-                      output_stream, buffer, n, cancellable, error);
++              if (g_output_stream_write_all (output_stream, buffer, n, 
&n_written, cancellable, error))
++                      n_bytes_written = (gssize) n_written;
++              else
++                      n_bytes_written = -1;
+ 
+               g_object_unref (base_stream);
++      } else {
++              g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED, 
_("Cannot write with no base stream"));
+       }
+ 
+       return n_bytes_written;
diff -Nru evolution-data-server-3.12.9~git20141128.5242b0/debian/patches/series 
evolution-data-server-3.12.9~git20141128.5242b0/debian/patches/series
--- evolution-data-server-3.12.9~git20141128.5242b0/debian/patches/series       
2015-02-12 10:57:14.000000000 +0100
+++ evolution-data-server-3.12.9~git20141128.5242b0/debian/patches/series       
2016-12-21 18:27:51.000000000 +0100
@@ -2,3 +2,4 @@
 03_Use-after-free-gpg-verif.patch
 04_sqlite-Track-pending-sync-requests.patch
 05_imapx-Shared-folders-removed-folder-list-refresh.patch
+06_787398_bae0c64_fix_connection_drop.patch

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unreleased'), (500, 'unstable'), 
(500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, m68k, arm64

Kernel: Linux 4.8.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=nl_BE.UTF-8, LC_CTYPE=nl_BE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Reply via email to