[mew-int 01308] mew-3.2 breaks on illegal multipart messages!
clemens fischer
ino-qc at example.com
Fri Mar 7 00:03:27 JST 2003
i just got spam, propably created by a very dumb tool. i cannot make
the message visible, because mew breaks into the debugger. here's
the trace:
Debugger entered--Lisp error: (error "")
signal(error (""))
error("")
mew-decode-error("No last boundary for Multipart/Mixed")
(catch (quote multipart) (while (re-search-forward bregex nil t) (setq break ...) (if break nil ...) (save-excursion ... ... ... ...) (setq start ...) (when break ...)) (when (= count 0) (save-restriction ... ... ...)) (mew-decode-error (format "No last boundary for %s" ct)))
(let* ((case-fold-search nil) (ctl ...) (ct ...) (boundary ...) (count 0) (parts []) part pref lastpref prefpart atpref lastatpref bregex start break) (unless boundary (mew-decode-error "No boundary parameter for multipart")) (mew-syntax-set-key syntax (quote multi)) (setq bregex (mew-decode-multipart-boundary-regex boundary)) (unless (and ... ...) (mew-decode-error ...)) (forward-line) (setq start (point)) (catch (quote multipart) (while ... ... ... ... ... ...) (when ... ...) (mew-decode-error ...)))
mew-decode-multipart([multi 1443 nil nil ("multipart/mixed" ("boundary" "----=_NextPart_000_00A4_31D77A2E.C6686C33")) nil nil nil nil] 1 nil)
(setq syntax (mew-decode-multipart syntax cnt nil))
(cond ((string= mew-ct-mld ct) (setq syntax ...)) ((string= mew-ct-mls ct) (setq syntax ...)) ((string= mew-ct-mle ct) (if mew-inherit-prefetching ... ...)) (t (setq syntax ...)))
(if multi-err (mew-syntax-set-ct syntax mew-type-apo) (cond (... ...) (... ...) (... ...) (t ...)))
(cond ((not ...) (mew-syntax-set-ct syntax mew-type-apo) (if ... ...)) ((mew-ct-messagep ct) (if ... ... ...)) ((mew-ct-multipartp ct) (if ... ... ... ...) (if multi-err ... ...)) ((string-match mew-ct-sme ct) (setq syntax ...)) ((string= mew-ct-trh ct) (save-restriction ... ...)) (t (if ... ...) (if textp ... ...)))
(let* ((case-fold-search t) (begin ...) (syntax ...) (ctl ...) (ct ...) (textp ...) (cte ...) (multi-err t) (encap nil) type) (cond (... ... ...) (... ...) (... ... ...) (... ...) (... ...) (t ... ...)) (setq type (mew-syntax-get-value ... ...)) (unless (mew-syntax-get-end syntax) (mew-syntax-set-end syntax ...)) (when (and ... ...) (mew-highlight-body-region ... ...)) (if encap (let ... ... ... ...) syntax))
mew-decode-singlepart(1 nil message)
(setq part (mew-decode-singlepart cnt nil (quote message)))
(save-restriction (narrow-to-region (point) (point-max)) (setq part (mew-decode-singlepart cnt nil ...)) (mew-syntax-set-key syntax (quote message)) (mew-syntax-set-end syntax (1- ...)) (or (mew-syntax-get-cd syntax) (mew-syntax-set-cd syntax subj)) (mew-syntax-cat syntax part))
(cond (mimep (save-restriction ... ... ... ... ... ...)) (t (if ... ... ...) (if ... ...) (mew-syntax-set-key syntax ...) (mew-syntax-set-end syntax ...) (or ... ...) (mew-highlight-body-region ... ...) (mew-decode-syntax-rfc822 syntax)))
(let* ((msf ...) (mimep ...) (subj ...) (mew-inherit-decode-signer ...) part) (cond (mimep ...) (t ... ... ... ... ... ... ...)))
(cond ((and ... ...) (if ... ... ...) (mew-syntax-set-key syntax ...) (mew-syntax-set-end syntax ...) (mew-decode-syntax-rfc822 syntax)) (t (let* ... ...)))
mew-decode-message([message 1 nil nil ("Message/Rfc822") nil nil nil nil] 0)
(setq mew-decode-syntax (mew-decode-message (mew-decode-syntax-rfc822-head) 0))
(let ((debug-on-error t)) (setq mew-decode-syntax (mew-decode-message ... 0)))
(if (mew-debug (quote decode)) (let (...) (setq mew-decode-syntax ...)) (condition-case nil (setq mew-decode-syntax ...) (error ... ... ...)))
mew-decode()
byte-code(" ÃÄ Â*Â Ä ï¿½Â" [unlimit mew-header-max-depth mew-header-max-length nil mew-decode] 2)
byte-code(" qÂ Â Æ Â Â% Ç Â% ÈÂ% É\f\"È\nÂ. ÊËÌ\"Âq�ÈÌ~� � Â,ÏÐÑÂ�\f@A%�ÌÈ$� � !�Ö×�\f!� Â" [cache unlimit decode fld msg zmacs-regions mew-xinfo-get-not-decrypted mew-xinfo-get-decode-err t mew-cache-add throw return nil erase-buffer buffer-disable-undo errmsg (byte-code " \nÆÇ \"È
! ÉÊË \"\"Âi Ì
!ÍUÂ/ ÉÎË \"\"Âi È
!Â
i ÏÂÐ!Â
= \fÆ�Ò
ÆÂÍ$Â-ÏÂÐ!Âa )Ó
!Ì
!B-Æ" [fld msg mew-cs-text-for-read size rcs file nil mew-expand-folder file-readable-p error "%s does not exist" mew-concat-folder mew-file-get-size 0 "The size of %s is 0" boundp buffer-file-coding-system t insert-file-contents mew-file-get-time old-cs mew-cs-dummy jka-compr-inhibit auto-image-file-mode format-alist coding-system-for-write coding-system-for-read tim-siz] 5) ((error ...)) mew-cinfo-set mew-dinfo-set mew-decode-syntax-clear mew-xinfo-set-text-body (byte-code " ÃÄ Â*Â Ä ï¿½Â" [unlimit mew-header-max-depth mew-header-max-length nil mew-decode] 2) ((quit ...)) mew-ainfo-set-icon mew-decode-syntax-set after-change-functions inhibit-read-only buffer-read-only tim-siz mew-decode-broken mew-use-alternative mew-use-text-body] 6)
mew-cache-message("+inbox" "35" nil)
mew-summary-cache-message("+inbox" "35" #<buffer +inbox>)
mew-summary-display(nil)
call-interactively(mew-summary-display)
mew-summary-scroll-up()
call-interactively(mew-summary-scroll-up)
i did not see the error message about the missing last boundary.
this traceback was possible because i "M-x load-library RET
/emacs/site-lisp/mew/mew-decode.el RET" gave more text instead of the
byte code. i have mew-decode-broken set to true. emacs runs on an
i386 freebsd-4.5.2 here.
could you please look into this? is this the right list to send bug
reports to?
thanks,
clemens
More information about the Mew-int
mailing list