[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Gnus crash
From: |
Kenichi Handa |
Subject: |
Re: Gnus crash |
Date: |
Fri, 17 Jan 2003 11:27:32 +0900 (JST) |
In article <address@hidden>, "Eduardo =?iso-8859-1?q?Mu=F1oz?="
<address@hidden> writes:
> A korean spam message manged to crash Emacs while
> using Gnus. I can reproduce the crash with only two
> files, a bare bones .gnus and an one-message mbox.
> I included both files at the en of the post.
> The home dir to reproduce the crash looks like this:
> Home/
> .gnus
> Mail/
> Inbox
> Steps to reproduce the crash
> start emacs
> M-x gnus
> No server defined (or somesuch) (Continue? y or n) y RET
> G m RET Inbox RET nnfolder RET
> ;; Now you can see the Inbox group
> RET ;; enter the group and voilá Emacs crashes
This bug was already fixed in HEAD. But somehow the fix is
not yet installed in RC. I think this bug is serious enough
to be fixed before the release of 21.3. If you agree, I'll
install it in RC.
---
Ken'ichi HANDA
address@hidden
PS. This is the relevant change.
2002-01-02 Richard M. Stallman <address@hidden>
[...]
* editfns.c (Fformat): Update thissize from field_width
based on the actual width, in the string case.
Index: editfns.c
===================================================================
RCS file: /cvs/emacs/src/editfns.c,v
retrieving revision 1.324
retrieving revision 1.325
diff -u -c -r1.324 -r1.325
cvs server: conflicting specifications of output style
*** editfns.c 18 Dec 2001 02:15:53 -0000 1.324
--- editfns.c 2 Jan 2002 19:56:50 -0000 1.325
***************
*** 3217,3222 ****
--- 3217,3223 ----
if (*format++ == '%')
{
int thissize = 0;
+ int actual_width = 0;
unsigned char *this_format_start = format - 1;
int field_width, precision;
***************
*** 3297,3302 ****
--- 3298,3304 ----
if (*format != 's' && *format != 'S')
error ("Format specifier doesn't match argument type");
thissize = CONVERTED_BYTE_SIZE (multibyte, args[n]);
+ actual_width = lisp_string_width (args[n], -1, NULL, NULL);
}
/* Would get MPV otherwise, since Lisp_Int's `point' to low memory. */
else if (INTEGERP (args[n]) && *format != 's')
***************
*** 3350,3356 ****
goto string;
}
! thissize = max (field_width, thissize);
total += thissize + 4;
}
--- 3352,3358 ----
goto string;
}
! thissize += max (0, field_width - actual_width);
total += thissize + 4;
}
- Re: Gnus crash,
Kenichi Handa <=
Re: Gnus crash, Richard Stallman, 2003/01/17