Bug#318686: libgnomevfs2-common: privoxy's use of "Transfer-Encoding: identity" breaks libneon, vfs2, gweather-applet

Michael Shields shields at msrl.com
Sun Jul 17 01:56:06 UTC 2005


Package: libgnomevfs2-common
Version: 2.10.1-5
Severity: normal
Tags: patch

When privoxy receives a page using Transfer-Encoding: chunked, and then
de-chunks it for filtering, it changes the header to "identity".  This
value of the header was included in RFC 2616 by mistake; the working group
meant to pull it out.  See <http://purl.org/NET/http-errata#identity>
and the http-wg mailing list archives for discussion of this.

Specifically, this breaks the libneon that is bundled with vfs2,
and therefore gweather-applet.  I am reporting a bug (#318683) against
Privoxy also, with a patch to cause it not to send this header.  However,
I believe that libneon is also at fault for assuming that any T-E header
implies the chunked encoding it asked for.  The attached patch makes
vfs2 tolerant of code that implemented the RFC as published.


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable'), (50, 'unstable')
Architecture: powerpc (ppc)
Shell:  /bin/sh linked to /bin/dash
Kernel: Linux 2.6.11-powerpc
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages libgnomevfs2-common depends on:
ii  dbus-1                      0.23.4-1     simple interprocess messaging syst
ii  dbus-glib-1                 0.23.4-1     simple interprocess messaging syst
ii  gconf2                      2.10.0-2     GNOME configuration database syste
ii  gnome-mime-data             2.4.2-1      base MIME and Application database
ii  libbonobo2-0                2.8.1-2      Bonobo CORBA interfaces library
ii  libbz2-1.0                  1.0.2-7      high-quality block-sorting file co
ii  libc6                       2.3.2.ds1-22 GNU C Library: Shared libraries an
ii  libcdparanoia0              3a9.8-11     Shared libraries for cdparanoia (r
ii  libfam0c102                 2.7.0-7      client library to control the FAM 
ii  libgconf2-4                 2.10.0-2     GNOME configuration database syste
ii  libgcrypt11                 1.2.0-11.1   LGPL Crypto library - runtime libr
ii  libglib2.0-0                2.6.5-1      The GLib library of C routines
ii  libgnomevfs2-0              2.10.1-5     The GNOME virtual file-system libr
ii  libgnutls11                 1.0.16-13.1  GNU TLS library - runtime library
ii  libgpg-error0               1.0-1        library for common error values an
ii  libhal-storage0             0.4.8-3      Hardware Abstraction Layer - share
ii  libhal0                     0.4.8-1      Hardware Abstraction Layer - share
ii  liborbit2                   1:2.12.2-1   libraries for ORBit2 - a CORBA ORB
ii  libpopt0                    1.7-5        lib for parsing cmdline parameters
ii  libsmbclient                3.0.14a-3    shared library that allows applica
ii  libtasn1-2                  0.2.10-4     Manage ASN.1 structures (runtime)
ii  libxml2                     2.6.20-1     GNOME XML library
ii  shared-mime-info            0.16-3       FreeDesktop.org shared MIME databa
ii  zlib1g                      1:1.2.2-4    compression library - runtime

libgnomevfs2-common recommends no packages.

-- no debconf information
-------------- next part --------------
--- gnome-vfs2-2.10.1/imported/neon.old/ne_request.c	2005-01-30 11:59:55.000000000 +0000
+++ gnome-vfs2-2.10.1/imported/neon/ne_request.c	2005-07-17 01:43:26.000000000 +0000
@@ -480,14 +480,18 @@
     return (st->klass == 2);
 }
 
-/* Handler for the "Transfer-Encoding" response header: treat *any*
- * such header as implying a chunked response, per the "Protocol
- * Compliance" statement in the manual. */
+/* Handler for the "Transfer-Encoding" response header.  Previous
+ * versions treated *any* such header as implying a chunked response.
+ * However, we need to handle at least "Transfer-Encoding: identity"
+ * also (by ignoring it).  This was included in RFC 2616 by mistake
+ * (see http://purl.org/NET/http-errata#identity), but it is there,
+ * and Privoxy uses it at least through version 3.0.3. */
 static void te_hdr_handler(void *userdata, const char *value) 
 {
     struct ne_response *resp = userdata;
-
-    resp->mode = R_CHUNKED;    
+    if (strcasecmp(value, "chunked") == 0) {
+	resp->mode = R_CHUNKED;
+    }
 }
 
 /* Handler for the "Connection" response header */


More information about the Pkg-gnome-maintainers mailing list