Gnus development mailing list
 help / color / mirror / Atom feed
From: Ted Zlatanov <tzz@lifelogs.com>
To: ding@gnus.org
Subject: Re: Debugger entered--Lisp error: (overflow-error "13419098521433281274")
Date: Wed, 02 Mar 2011 14:17:14 -0600	[thread overview]
Message-ID: <87aahdmg51.fsf@lifelogs.com> (raw)
In-Reply-To: <87lj0x72ce.fsf@member.fsf.org>

On Wed, 02 Mar 2011 20:24:17 +0100 Tassilo Horn <tassilo@member.fsf.org> wrote: 

TH> That's a bit unfortunate.  Today I've encountered 2 of these values that
TH> were too big to be `read' by emacs.

TH> Looking at `nnimap-parse-flags' I can see that the value of UIDVALIDITY
TH> is extracted by string-matching and stored as string, because it might
TH> be bigger than an emacs integer.  Probably the same has to be done for
TH> the FETCH lines.

TH> Here's the offending code:
TH> 	  (while (re-search-forward "^\\* [0-9]+ FETCH " start t)
TH> 	    (setq elems (read (current-buffer)))
TH> 	    (push (cons (cadr (memq 'UID elems))
TH> 			(cadr (memq 'FLAGS elems)))
TH> 		  articles))

TH> Of course, it is convenient to `read' the complete list in lines like

TH>   * 2971 FETCH (FLAGS (%Recent) UID 12509 MODSEQ (13419098521433281274))

TH> but it fails for large numbers.  And if the RFC says those are 64bit
TH> unsigned ints, well, then Gnus has to handle those.

Gnus has no way to do it when Emacs can't.  The calc package has some
facilities for big numbers but yeah, (read) will not DTRT with input
like that.  I've asked for it on emacs-devel.

To fix it now, I would replace such large numbers with a truncated
version, which can be done safely with a regex before the reader sees
the input.  But I'll let Lars decide, he knows that code best.

Ted




  reply	other threads:[~2011-03-02 20:17 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-02 15:28 Tassilo Horn
2011-03-02 17:52 ` Tassilo Horn
2011-03-02 19:00 ` Andreas Schwab
2011-03-02 19:24   ` Tassilo Horn
2011-03-02 20:17     ` Ted Zlatanov [this message]
2011-03-02 20:36       ` Tassilo Horn
2011-03-02 20:52         ` Andreas Schwab
2011-03-02 21:02           ` Tassilo Horn
2011-03-02 20:56         ` Ted Zlatanov
2011-03-03  8:11           ` Tassilo Horn
2011-03-04 14:59             ` Ted Zlatanov
2011-03-05 10:52         ` Lars Magne Ingebrigtsen
2011-03-05 10:55 ` Lars Magne Ingebrigtsen
2011-03-07 17:29   ` Ted Zlatanov
2011-03-15 16:50     ` Lars Magne Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87aahdmg51.fsf@lifelogs.com \
    --to=tzz@lifelogs.com \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).