Package: thttpd Version: 2.25b-11 Severity: normal Tags: upstream patch
thttp use the default "text/plain;" Content-Type: header for many files types, including 3GP ones. So mobile phones fail to read 3GP videos served by thttpd. Always reproductible : * setup a default thttpd server * put a .3gp in served documentroot * try to GET it via HTTP client. HTTP header will contain "Content-Type: text/plain;" and is not correct. MIME type detection is done with file extension in thttpd, based on a fixed list at compile time and 3gp extension entry is missing. Attached : a patch that add file extensions present in /etc/mime.types from package mime-support 3.48-1 and are missing in thttpd fixed list. I am not including extensions that have a MIME type contianing an "x-" prefix (ie non standardised). -- System Information: Debian Release: 6.0.7 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores) Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages thttpd depends on: ii libc6 2.11.3-4 Embedded GNU C Library: Shared lib Versions of packages thttpd recommends: ii logrotate 3.7.8-6 Log rotation utility Versions of packages thttpd suggests: pn thttpd-util <none> (no description available) -- Configuration Files: /etc/default/thttpd changed: ENABLED=yes /etc/thttpd/thttpd.conf changed: port=8080 dir=/var/www2 chroot user=www-data cgipat=/cgi-bin/* throttles=/etc/thttpd/throttle.conf logfile=/var/log/thttpd.log -- no debconf information
#! /bin/sh /usr/share/dpatch/dpatch-run ## 13-extra-mimetypes.dpatch by <r...@sd-30464.dedibox.fr> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' thttpd-2.25b~/mime_types.txt thttpd-2.25b/mime_types.txt --- thttpd-2.25b~/mime_types.txt 2013-04-12 16:52:57.332789434 +0200 +++ thttpd-2.25b/mime_types.txt 2013-04-12 16:52:57.364732735 +0200 @@ -3,115 +3,197 @@ # A list of file extensions followed by the corresponding MIME type. # Extensions not found in the table are returned as text/plain. -a application/octet-stream +323 text/h323 +3gp video/3gpp aab application/x-authorware-bin aam application/x-authorware-map +a application/octet-stream aas application/x-authorware-seg ai application/postscript aif audio/x-aiff aifc audio/x-aiff aiff audio/x-aiff +amr audio/amr +anx application/annodex +apk application/vnd.android.package-archive asc text/plain asf video/x-ms-asf asx video/x-ms-asf +atom application/atom+xml +atomcat application/atomcat+xml +atomsrv application/atomserv+xml au audio/basic avi video/x-msvideo +awb audio/amr-wb +axa audio/annodex +axv video/annodex bcpio application/x-bcpio bin application/octet-stream bmp image/bmp +brf text/plain +cap application/cap +cat application/vnd.ms-pki.seccat cdf application/x-netcdf +cdy application/vnd.cinderella +class application/java-vm class application/x-java-vm +cod application/vnd.rim.cod cpio application/x-cpio cpt application/mac-compactpro crl application/x-pkcs7-crl crt application/x-x509-ca-cert csh application/x-csh css text/css +csv text/csv +cu application/cu-seeme +davmount application/davmount+xml dcr application/x-director +dif video/dv dir application/x-director djv image/vnd.djvu djvu image/vnd.djvu dll application/octet-stream +dl video/dl dms application/octet-stream doc application/msword +docx application/vnd.openxmlformats-officedocument.wordprocessingml.document +dot application/msword +dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template dtd text/xml dump application/octet-stream dvi application/x-dvi +dv video/dv dxr application/x-director +eml message/rfc822 +eps2 application/postscript +eps3 application/postscript eps application/postscript +epsf application/postscript +epsi application/postscript +es application/ecmascript etx text/x-setext exe application/octet-stream ez application/andrew-inset fgd application/x-director -fh image/x-freehand fh4 image/x-freehand fh5 image/x-freehand fh7 image/x-freehand fhc image/x-freehand +fh image/x-freehand +flac audio/flac +fli video/fli gif image/gif +gl video/gl gtar application/x-gtar hdf application/x-hdf hqx application/mac-binhex40 -htm text/html; charset=%s +hta application/hta html text/html; charset=%s +htm text/html; charset=%s ice x-conference/x-cooltalk +ics text/calendar +icz text/calendar ief image/ief iges model/iges igs model/iges iv application/x-inventor +jad text/vnd.sun.j2me.app-descriptor +jar application/java-archive jar application/x-java-archive jfif image/jpeg -jpe image/jpeg jpeg image/jpeg +jpe image/jpeg jpg image/jpeg +js application/javascript js application/x-javascript kar audio/midi +key application/pgp-keys +kml application/vnd.google-earth.kml+xml +kmz application/vnd.google-earth.kmz latex application/x-latex lha application/octet-stream +lin application/bbolin lzh application/octet-stream +m3g application/m3g +m3u audio/mpegurl m3u audio/x-mpegurl +m4a audio/mpeg man application/x-troff-man +manifest text/cache-manifest mathml application/mathml+xml +mdb application/msaccess me application/x-troff-me mesh model/mesh mid audio/midi midi audio/midi mif application/vnd.mif mime message/rfc822 +mmf application/vnd.smaf mml application/mathml+xml -mov video/quicktime +mml text/mathml movie video/x-sgi-movie +mov video/quicktime mp2 audio/mpeg mp3 audio/mpeg mp4 video/mp4 -mpe video/mpeg +mpega audio/mpeg mpeg video/mpeg -mpg video/mpeg +mpe video/mpeg mpga audio/mpeg +mpg video/mpeg ms application/x-troff-ms msh model/mesh mv video/x-sgi-movie +mxf application/mxf mxu video/vnd.mpegurl +nb application/mathematica +nbp application/mathematica nc application/x-netcdf o application/octet-stream oda application/oda +odb application/vnd.oasis.opendocument.database +odc application/vnd.oasis.opendocument.chart +odf application/vnd.oasis.opendocument.formula +odg application/vnd.oasis.opendocument.graphics +odi application/vnd.oasis.opendocument.image +odm application/vnd.oasis.opendocument.text-master +odp application/vnd.oasis.opendocument.presentation +ods application/vnd.oasis.opendocument.spreadsheet +odt application/vnd.oasis.opendocument.text +oga audio/ogg ogg application/x-ogg +ogg audio/ogg ogv video/ogg ogx application/ogg +otg application/vnd.oasis.opendocument.graphics-template +oth application/vnd.oasis.opendocument.text-web +otp application/vnd.oasis.opendocument.presentation-template +ots application/vnd.oasis.opendocument.spreadsheet-template +ott application/vnd.oasis.opendocument.text-template pac application/x-ns-proxy-autoconfig pbm image/x-portable-bitmap +pcap application/cap +pcx image/pcx pdb chemical/x-pdb pdf application/pdf pgm image/x-portable-graymap pgn application/x-chess-pgn +pgp application/pgp-signature png image/png pnm image/x-portable-anymap +pot text/plain +potx application/vnd.openxmlformats-officedocument.presentationml.template ppm image/x-portable-pixmap +pps application/vnd.ms-powerpoint +ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow ppt application/vnd.ms-powerpoint +pptx application/vnd.openxmlformats-officedocument.presentationml.presentation +prf application/pics-rules ps application/postscript qt video/quicktime ra audio/x-realaudio ram audio/x-pn-realaudio +rar application/rar ras image/x-cmu-raster rdf application/rdf+xml rgb image/x-rgb @@ -119,13 +201,26 @@ roff application/x-troff rpm audio/x-pn-realaudio-plugin rss application/rss+xml +rtf application/rtf rtf text/rtf rtx text/richtext -sgm text/sgml +sct text/scriptlet +sda application/vnd.stardivision.draw +sdc application/vnd.stardivision.calc +sdd application/vnd.stardivision.impress +sdf application/vnd.stardivision.math +sds application/vnd.stardivision.chart +sdw application/vnd.stardivision.writer +ser application/java-serialized-object +sgl application/vnd.stardivision.writer-global sgml text/sgml +sgm text/sgml sh application/x-sh shar application/x-shar +shtml text/html +sid audio/prs.sid silo model/mesh +sis application/vnd.symbian.install sit application/x-stuffit skd application/x-koan skm application/x-koan @@ -135,11 +230,14 @@ smil application/smil snd audio/basic so application/octet-stream +spl application/futuresplash spl application/x-futuresplash +spx audio/ogg src application/x-wais-source stc application/vnd.sun.xml.calc.template std application/vnd.sun.xml.draw.template sti application/vnd.sun.xml.impress.template +stl application/vnd.ms-pki.stl stw application/vnd.sun.xml.writer.template sv4cpio application/x-sv4cpio sv4crc application/x-sv4crc @@ -158,40 +256,61 @@ tex application/x-tex texi application/x-texinfo texinfo application/x-texinfo -tif image/tiff +text text/plain tiff image/tiff +tif image/tiff +tm text/texmacs tr application/x-troff tsp application/dsptype +ts text/texmacs tsv text/tab-separated-values +txt text/plain txt text/plain; charset=%s +uls text/iuls ustar application/x-ustar vcd application/x-cdlink vrml model/vrml +vsd application/vnd.visio vx video/x-rad-screenplay wav audio/x-wav wax audio/x-ms-wax wbmp image/vnd.wap.wbmp wbxml application/vnd.wap.wbxml -wm video/x-ms-wm wma audio/x-ms-wma wmd application/x-ms-wmd -wml text/vnd.wap.wml wmlc application/vnd.wap.wmlc -wmls text/vnd.wap.wmlscript wmlsc application/vnd.wap.wmlscriptc +wmls text/vnd.wap.wmlscript +wml text/vnd.wap.wml +wm video/x-ms-wm wmv video/x-ms-wmv wmx video/x-ms-wmx wmz application/x-ms-wmz +wp5 application/vnd.wordperfect5.1 +wpd application/vnd.wordperfect wrl model/vrml +wsc text/scriptlet wsrc application/x-wais-source wvx video/x-ms-wvx +x3db model/x3d+binary +x3d model/x3d+xml +x3dv model/x3d+vrml xbm image/x-xbitmap xht application/xhtml+xml xhtml application/xhtml+xml +xlb application/vnd.ms-excel xls application/vnd.ms-excel +xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet +xlt application/vnd.ms-excel +xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template +xml application/xml xml text/xml xpm image/x-xpixmap +xsd application/xml +xsl application/xml xsl text/xml +xspf application/xspf+xml +xul application/vnd.mozilla.xul+xml xwd image/x-xwindowdump xyz chemical/x-xyz zip application/zip