List Info

Thread: 23.0.60; incorrect Content-Transfer-Encoding for inline message/rfc822 entities




23.0.60; incorrect Content-Transfer-Encoding for inline message/rfc822 entities
country flaguser name
Italy
2008-04-23 15:18:44
PLEASE WRITE IN ENGLISH IF POSSIBLE, BECAUSE THE EMACS MAINTAINERS USUALLY DO NOT HAVE TRANSLATORS TO READ OTHER LANGUAGES FOR THEM. YOUR BUG REPORT WILL BE POSTED TO THE EMACS-PRETEST-BUGGNU.ORG MAILING LIST. PLEASE DESCRIBE EXACTLY WHAT ACTIONS TRIGGERED THE BUG AND THE PRECISE SYMPTOMS OF THE BUG: HELLO, I'M A GNUS USER AND MY FORWARD SETTINGS ARE THE FOLLOWING: (SETQ MESSAGE-FORWARD-AS-MIME T MESSAGE-FORWARD-BEFORE-SIGNATURE NIL MESSAGE-FORWARD-SHOW-MML NIL MESSAGE-MAKE-FORWARD-SUBJECT-FUNCTION 'MESSAGE-FORWARD-SUBJECT-FWD) TODAY I FORWARDED THE ATTACHED MAIL TO THE DEBIAN DEVELOPMENT MAILING LIST [1], BUT THE MAIL WAS REJECTED BY POSTFIX WITH ERROR: DIAGNOSTIC CODE: SMTP;550 5.6.0 INVALID MESSAGE/* OR MULTIPART/* ENCODING DOMAIN THE PROBLEM SEEMS TO BE IN THE HEADERS OF THE "MESSAGE/RFC822" ENTITY: CONTENT-TYPE: MESSAGE/RFC822 CONTENT-DISPOSITION: INLINE CONTENT-TRANSFER-ENCODING: QUOTED-PRINTABLE IN FACT, ACCORDING TO RFC2046, § 5.2.1, RFC822 SUBTYPE [2], "QUOTED-PRINTABLE" IS NOT A VALID ENCODING: NO ENCODING OTHER THAN "7BIT", "8BIT", OR "BINARY" IS PERMITTED FOR THE BODY OF A "MESSAGE/RFC822" ENTITY. THE ERROR IS IN LISP/GNUS/MM-ENCODE.EL:MM-SAFER-ENCODING, WHICH RETURNS QUOTED-PRINTABLE IF THE ENTITY ENCODING IS EITHER 8BIT OR QUOTED-PRINTABLE. IF I CORRECTLY READ RFC2046 THIS IS PLAINLY WRONG FOR THE SPECIFIC "MESSAGE/RFC822" ENTITY, AS IT SHOULD RETURN 8BIT INSTEAD, AND AS WELL AS FOR BASE64 (IT SHOULD RETURN BINARY). I TESTED THE FOLLOWING PATCH FOR "MESSAGE/RFC822" AND "TEXT/PLAIN" ENTITIES: --8<---------------CUT HERE---------------START------------->8--- --- MM-ENCODE.EL.~1~ 2008-04-23 19:37:22.000000000 +0200 +++ MM-ENCODE.EL 2008-04-23 20:00:32.000000000 +0200 -96,14 +96,15 "APPLICATION/OCTET-STREAM" (MAILCAP-EXTENSION-TO-MIME (MATCH-STRING 0 FILE)))) -(DEFUN MM-SAFER-ENCODING (ENCODING) +(DEFUN MM-SAFER-ENCODING (ENCODING &OPTIONAL TYPE) "RETURN AN ENCODING SIMILAR TO ENCODING BUT SAFER THAN IT." (COND ((EQ ENCODING '7BIT) '7BIT) ;; 7BIT IS CONSIDERED SAFE. - ((MEMQ ENCODING '(8BIT QUOTED-PRINTABLE)) 'QUOTED-PRINTABLE) + ((MEMQ ENCODING '(8BIT QUOTED-PRINTABLE)) + (IF (STRING= TYPE "MESSAGE/RFC822") '8BIT 'QUOTED-PRINTABLE)) ;; THE REMAINING ENCODINGS ARE BINARY AND BASE64 (AND PERHAPS SOME ;; NON-STANDARD ONES), WHICH ARE BOTH TURNED INTO BASE64. - (T 'BASE64))) + (T (IF (STRING= TYPE "MESSAGE/RFC822") 'BINARY 'BASE64)))) (DEFUN MM-ENCODE-CONTENT-TRANSFER-ENCODING (ENCODING &OPTIONAL TYPE) "ENCODE THE CURRENT BUFFER WITH ENCODING FOR MIME TYPE TYPE. -178,7 +179,7 (MM-QP-OR-BASE64) (CADR (CAR RULES))))) (IF MM-USE-ULTRA-SAFE-ENCODING - (MM-SAFER-ENCODING ENCODING) + (MM-SAFER-ENCODING ENCODING TYPE) ENCODING)))) (POP RULES))))) --8<---------------CUT HERE---------------END--------------->8--- BTW, I FOUND THIS BUG BECAUSE I USE `MML-SECURE-MESSAGE-SIGN-PGPMIME` TO SIGN MY MAILS. THX, BYE, GISMO / LUCA FOOTNOTES: [1] HTTP://LISTS.DEBIAN.ORG/DEBIAN-DEVEL/ [2] HTTP://TOOLS.IETF.ORG/HTML/RFC2046#SECTION-5.2.1 IF EMACS CRASHED, AND YOU HAVE THE EMACS PROCESS IN THE GDB DEBUGGER, PLEASE INCLUDE THE OUTPUT FROM THE FOLLOWING GDB COMMANDS: `BT FULL' AND `XBACKTRACE'. IF YOU WOULD LIKE TO FURTHER DEBUG THE CRASH, PLEASE READ THE FILE /USR/SHARE/EMACS/23.0.60/ETC/DEBUG FOR INSTRUCTIONS. IN GNU EMACS 23.0.60.1 (X86_64-PC-LINUX-GNU) OF 2008-04-16 ON ELEGIAC, MODIFIED BY DEBIAN (EMACS-SNAPSHOT PACKAGE, VERSION 1:20080416-1) CONFIGURED USING `CONFIGURE '--BUILD' 'X86_64-LINUX-GNU' '--HOST' 'X86_64-LINUX-GNU' '--PREFIX=/USR' '--SHAREDSTATEDIR=/VAR/LIB' '--LIBEXECDIR=/USR/LIB' '--LOCALSTATEDIR=/VAR' '--INFODIR=/USR/SHARE/INFO' '--MANDIR=/USR/SHARE/MAN' '--WITH-POP=YES' '--ENABLE-LOCALLISPPATH=/ETC/EMACS-SNAPSHOT:/ETC/EMACS:/USR/LOCAL/SHARE/EMACS/23.0.60/SITE-LISP:/USR/LOCAL/SHARE/EMACS/SITE-LISP:/USR/SHARE/EMACS/23.0.60/SITE-LISP:/USR/SHARE/EMACS/SITE-LISP:/USR/SHARE/EMACS/23.0.60/LEIM' '--WITH-X=NO' '--WITHOUT-DBUS' '--WITHOUT-SOUND' 'BUILD_ALIAS=X86_64-LINUX-GNU' 'HOST_ALIAS=X86_64-LINUX-GNU' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -G -O2' 'LDFLAGS=-G -WL,--AS-NEEDED' 'CPPFLAGS='' IMPORTANT SETTINGS: VALUE OF $LC_ALL: NIL VALUE OF $LC_COLLATE: NIL VALUE OF $LC_CTYPE: NIL VALUE OF $LC_MESSAGES: NIL VALUE OF $LC_MONETARY: NIL VALUE OF $LC_NUMERIC: NIL VALUE OF $LC_TIME: NIL VALUE OF $LANG: EN_US.UTF-8 VALUE OF $XMODIFIERS: NIL LOCALE-CODING-SYSTEM: UTF-8-UNIX DEFAULT-ENABLE-MULTIBYTE-CHARACTERS: T MAJOR MODE: GROUP MINOR MODES IN EFFECT: ERC-TRUNCATE-MODE: T ERC-TRACK-MODE: T ERC-TRACK-MINOR-MODE: T ERC-SERVICES-MODE: T ERC-NETWORKS-MODE: T ERC-RING-MODE: T ERC-NETSPLIT-MODE: T ERC-MATCH-MODE: T ERC-PCOMPLETE-MODE: T ERC-BUTTON-MODE: T ERC-FILL-MODE: T ERC-AUTOJOIN-MODE: T ERC-AUTOAWAY-MODE: T GNUS-TOPIC-MODE: T GNUS-UNDO-MODE: T SHELL-DIRTRACK-MODE: T GPM-MOUSE-MODE: T DISPLAY-BATTERY-MODE: T DISPLAY-TIME-MODE: T SHOW-PAREN-MODE: T ERC-STAMP-MODE: T ERC-LOG-MODE: T ERC-SCROLLTOBOTTOM-MODE: T FILE-NAME-SHADOW-MODE: T GLOBAL-FONT-LOCK-MODE: T FONT-LOCK-MODE: T GLOBAL-AUTO-COMPOSITION-MODE: T AUTO-COMPOSITION-MODE: T AUTO-COMPRESSION-MODE: T COLUMN-NUMBER-MODE: T LINE-NUMBER-MODE: T TRANSIENT-MARK-MODE: T RECENT INPUT: [ A ESC [ A ESC [ A ESC [ A ESC [ A ESC [ A ESC [ B ESC [ B ESC [ A ESC [ A ESC [ A ESC [ A ESC [ A ESC [ A RET RET Q L ESC [ A RET ESC [ B Q ESC [ B ESC [ B ESC [ B ESC [ B ESC [ B ESC [ B ESC [ B ESC [ B ESC [ B RET RET C-C ESC F I C-X O C-X O C-X O C-X O ESC V C-V C-V ESC > C-C ESC F G ESC C-V Q L J J C-C ESC F I ESC V ESC V C-V ESC > ESC [ B C-C ESC F G G J J G C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P RET # # C-N C-N # C-N # # # C-N # C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P B DEL Y X ESC < B M C-A C-K N N M L TAB B O TAB RET X Q RET RET B R RET X Q L C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-N C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P C-P RET RET B M P E TAB S A N D R TAB TAB O TAB RET X Q L C-P C-P C-P C-P C-P C-P C-P C-P C-P RET RET B DEL Y X Q ESC X D E DEL DEL E DEL R E P O R T TAB E M TAB B TAB RET RECENT MESSAGES: WROTE /HOME/LUCA/MAIL/PEOPLE/SANDROMANGIA/4 GENERATING SUMMARY...DONE EXITING SUMMARY BUFFER AND APPLYING SPAM RULES RETRIEVING NEWSGROUP: NNDRAFTRAFTS... FETCHING HEADERS FOR NNDRAFTRAFTS...DONE GENERATING SUMMARY...DONE DO YOU REALLY WANT TO DELETE THIS ARTICLE FOREVER? (Y OR N) DELETING ARTICLE /HOME/LUCA/MAIL/DRAFTS/DRAFTS/349 IN DRAFTS... GENERATING SUMMARY...DONE EXITING SUMMARY BUFFER AND APPLYING SPAM RULES
  Approximate file size 6838 bytes
Re: 23.0.60; incorrect Content-Transfer-Encoding for inline message/rfc822 entities
country flaguser name
Germany
2008-04-24 16:58:08
On Wed, Apr 23 2008, Luca Capello wrote:

> Today I forwarded the attached mail to the Debian
development mailing
> list [1], but the mail was rejected by Postfix with
error:
>
>   Diagnostic code: smtp;550 5.6.0 invalid message/* or
multipart/*
>                    encoding domain
>
> The problem seems to be in the headers of the
"message/rfc822" entity:
>
>   Content-Type: message/rfc822
>   Content-Disposition: inline
>   Content-Transfer-Encoding: quoted-printable
>
> In fact, according to RFC2046, § 5.2.1, RFC822 Subtype
[2],
> "quoted-printable" is not a valid encoding:
>
>   No encoding other than "7bit",
"8bit", or "binary" is permitted for
>   the body of a "message/rfc822" entity.
>
> The error is in
lisp/gnus/mm-encode.el:mm-safer-encoding, which returns
> quoted-printable if the entity encoding is either 8bit
or
> quoted-printable.  If I correctly read RFC2046 this is
plainly wrong for
> the specific "message/rfc822" entity, as it
should return 8bit instead,
> and as well as for base64 (it should return binary).  I
tested the
> following patch for "message/rfc822" and
"text/plain" entities:

I've installed it in the stable Gnus branch (v5-10).  It
will be
synced to the trunk and to Emacs (trunk and Emacs_22 branch)
later.

The patch looks good to me.  Thanks for your contribution.
Does anyone see a problem with this it?

> --- mm-encode.el.~1~	2008-04-23 19:37:22.000000000
+0200
> +++ mm-encode.el	2008-04-23 20:00:32.000000000 +0200
>  -96,14 +96,15 
>        "application/octet-stream"
>      (mailcap-extension-to-mime (match-string 0
file))))
>
> -(defun mm-safer-encoding (encoding)
> +(defun mm-safer-encoding (encoding &optional
type)
>    "Return an encoding similar to ENCODING but
safer than it."
>    (cond
>     ((eq encoding '7bit) '7bit) ;; 7bit is considered
safe.
> -   ((memq encoding '(8bit quoted-printable))
'quoted-printable)
> +   ((memq encoding '(8bit quoted-printable))
> +    (if (string= type "message/rfc822")
'8bit 'quoted-printable))
>     ;; The remaining encodings are binary and base64
(and perhaps some
>     ;; non-standard ones), which are both turned into
base64.
> -   (t 'base64)))
> +   (t (if (string= type "message/rfc822")
'binary 'base64))))
>
>  (defun mm-encode-content-transfer-encoding (encoding
&optional type)
>    "Encode the current buffer with ENCODING for
MIME type TYPE.
>  -178,7 +179,7 
>  			    (mm-qp-or-base64)
>  			  (cadr (car rules)))))
>  		   (if mm-use-ultra-safe-encoding
> -		       (mm-safer-encoding encoding)
> +		       (mm-safer-encoding encoding type)
>  		     encoding))))
>  	(pop rules)))))

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages
.de/



[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )