Package: emacs;
Reported by: Richard Hansen <rhansen <at> bbn.com>
Date: Sat, 12 Apr 2014 06:12:02 UTC
Severity: normal
Found in version 24.3
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Richard Hansen <rhansen <at> bbn.com> Subject: bug#17249: closed (Re: 24.3; segfault with certain unicode strings in C locale) Date: Mon, 14 Apr 2014 05:51:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report #17249: 24.3; segfault with certain unicode strings in C locale which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 17249 <at> debbugs.gnu.org. -- 17249: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17249 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu> To: 17249-done <at> debbugs.gnu.org Subject: Re: 24.3; segfault with certain unicode strings in C locale Date: Sun, 13 Apr 2014 22:49:59 -0700Thanks for checking. Since the bug is fixed I'm marking it as done.
[Message part 3 (message/rfc822, inline)]
From: Richard Hansen <rhansen <at> bbn.com> To: bug-gnu-emacs <at> gnu.org Subject: 24.3; segfault with certain unicode strings in C locale Date: Sat, 12 Apr 2014 02:11:20 -0400I can get emacs to crash with these shell commands: # generate a unicode string printf '\040\314\210\302\273\n' >crash-emacs.txt LC_ALL=C emacs -nw -Q +1:3 crash-emacs.txt If I set LC_ALL=en_US.utf8 then it does not crash. Here is the gdb backtrace: #0 0x0000000000498c20 in char_table_ref (table=<optimized out>, c=c <at> entry=4194690) at chartab.c:234 tbl = 0xbb5000 val = 4611686018429485125 #1 0x00000000005a679e in composition_compute_stop_pos ( cmp_it=cmp_it <at> entry=0x7fffffffcf50, charpos=4, charpos <at> entry=3, bytepos=<optimized out>, bytepos <at> entry=3, endpos=<optimized out>, endpos <at> entry=5, string=12124434) at composite.c:1053 start = 3 end = 40 c = 4194690 prop = 839073240292445696 val = <optimized out> #2 0x000000000051bc7e in scan_for_column ( endpos=endpos <at> entry=0x7fffffffcfe8, goalcol=goalcol <at> entry=0x7fffffffcff8, prevcol=prevcol <at> entry=0x7fffffffcff0) at indent.c:595 c = <optimized out> ctl_arrow = true dp = 0x0 multibyte = true cmp_it = { stop_pos = 5, id = -1, ch = -2, rule_idx = 0, lookback = 1, nglyphs = 2, reversed_p = false, charpos = 2, nchars = 1, nbytes = 1, from = 1, to = 2, width = 1 } window = <optimized out> w = 0xba2978 col = 2 prev_col = 1 goal = 2 end = 5 scan = 3 scan_byte = 3 next_boundary = 5 #3 0x000000000051cea1 in Fmove_to_column (column=<optimized out>, force=12124434) at indent.c:990 pos = 5 prev_col = 20186896 col = 2 goal = 2 #4 0x000000000055006d in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2781 fun = 8584349 original_fun = 12285586 funcar = <optimized out> numargs = <optimized out> lisp_numargs = <optimized out> val = <optimized out> backtrace = { next = 0x7fffffffd250, function = 12285586, args = 0x7fffffffd160, nargs = 1, debug_on_exit = 0 } internal_args = 0x7fffffffd030 i = <optimized out> #5 0x0000000000584a8b in exec_byte_code (bytestr=12275717, vector=4194690, maxdepth=4611686018695757824, args_template=4611686018430533632, nargs=4611686018695757824, args=0x7fffffffd150) at bytecode.c:900 targets = {0x584ba8 <exec_byte_code+1032>, ... vectorp = 0x8c6fb8 <pure+601144> stack = { pc = 0xab5414 <pure+2625684> "\210\313\262\006\266\002\201Q", byte_string = 9203593, byte_string_start = 0xab5099 <pure+2624793> "\306 \210\b\203\021", constants = 9203629, next = 0x7fffffffd380 } result = 4611686018429485125 #6 0x000000000054f9bd in funcall_lambda (fun=9203629, nargs=nargs <at> entry=1, arg_vector=0x8c6f89 <pure+601097>, arg_vector <at> entry=0x7fffffffd2d0) at eval.c:2944 val = <optimized out> syms_left = <optimized out> next = <optimized out> lexenv = <optimized out> count = -26216640712628180 i = <optimized out> optional = <optimized out> rest = <optimized out> #7 0x000000000054feeb in Ffuncall (nargs=2, args=0x7fffffffd2c8) at eval.c:2839 fun = <optimized out> original_fun = 16434802 funcar = <optimized out> numargs = 1 lisp_numargs = <optimized out> val = <optimized out> backtrace = { next = 0x7fffffffd410, function = 16434802, args = 0x7fffffffd2d0, nargs = 1, debug_on_exit = 0 } internal_args = <optimized out> i = <optimized out> #8 0x0000000000584a8b in exec_byte_code (bytestr=12275717, vector=4194690, maxdepth=4611686018695757824, args_template=4611686018430533632, nargs=4611686018695757824, args=0x7fffffffd2c8) at bytecode.c:900 targets = {0x584ba8 <exec_byte_code+1032>, ... vectorp = 0x8c0600 <pure+574080> stack = { pc = 0xab7f31 <pure+2636721> "\210\016H\203\264\005\201\303", byte_string = 9176529, byte_string_start = 0xab7989 <pure+2635273> "\306 \020\307\021\n\023\307\024\310\311!\211\307=\204\060", constants = 9176565, next = 0x7fffffffd500 } result = 4611686018429485125 #9 0x000000000054f9bd in funcall_lambda (fun=9176565, nargs=nargs <at> entry=0, arg_vector=0x8c05d1 <pure+574033>, arg_vector <at> entry=0x7fffffffd498) at eval.c:2944 val = <optimized out> syms_left = <optimized out> next = <optimized out> lexenv = <optimized out> count = -26216640712628168 i = <optimized out> optional = <optimized out> rest = <optimized out> #10 0x000000000054feeb in Ffuncall (nargs=1, args=0x7fffffffd490) at eval.c:2839 fun = <optimized out> original_fun = 15567250 funcar = <optimized out> numargs = 0 lisp_numargs = <optimized out> val = <optimized out> backtrace = { next = 0x7fffffffd630, function = 15567250, args = 0x7fffffffd498, nargs = 0, debug_on_exit = 0 } internal_args = <optimized out> i = <optimized out> #11 0x0000000000584a8b in exec_byte_code (bytestr=12275717, vector=4194690, maxdepth=4611686018695757824, args_template=4611686018430533632, nargs=4611686018695757824, args=0x7fffffffd488) at bytecode.c:900 targets = {0x584ba8 <exec_byte_code+1032>, ... vectorp = 0x8bf9d0 <pure+570960> stack = { pc = 0xab84b7 <pure+2638135> "\210)\210\351\352\353\"\210\354\321\355\"\211;\203\256", byte_string = 9173409, byte_string_start = 0xab8422 <pure+2637986> "\b\203\b", constants = 9173445, next = 0x0 } result = 4611686018429485125 #12 0x000000000054f9bd in funcall_lambda (fun=9173445, fun <at> entry=9173357, nargs=nargs <at> entry=0, arg_vector=0x8bf9a1 <pure+570913>, arg_vector <at> entry=0x7fffffffd570) at eval.c:2944 val = <optimized out> syms_left = <optimized out> next = <optimized out> lexenv = <optimized out> count = -26221038759138928 i = <optimized out> optional = <optimized out> rest = <optimized out> #13 0x000000000054effd in apply_lambda (fun=9173357, args=<optimized out>) at eval.c:2887 args_left = 12124434 i = <optimized out> numargs = 0 arg_vector = <optimized out> gcpro1 = <optimized out> tem = <optimized out> sa_count = 3 sa_must_free = <optimized out> #14 0x000000000054f3c2 in eval_sub (form=form <at> entry=12349798) at eval.c:2218 fun = <optimized out> val = <optimized out> original_fun = 15837026 original_args = 12124434 funcar = <optimized out> backtrace = { next = 0x0, function = 15837026, args = 0x7fffffffd570, nargs = 0, debug_on_exit = 0 } gcpro3 = <optimized out> #15 0x00000000005527cd in Feval (form=12349798, lexical=<optimized out>) at eval.c:2005 count = 2 #16 0x000000000054e5b3 in internal_condition_case ( bfun=bfun <at> entry=0x4dd600 <top_level_2>, handlers=12176114, hfun=hfun <at> entry=0x4e2290 <cmd_error>) at eval.c:1289 val = <optimized out> c = { tag = 12124434, val = 12124434, next = 0x7fffffffd8b0, gcpro = 0x0, jmp = {{ __jmpbuf = {1, 7163789923458151104, 12124434, 4000, 140737488346000, 1, -7163791675184188736, 7163791299020387008}, __mask_was_saved = 0, __saved_mask = { __val = {17, 0, 140737354130880, 0, 140737354130880, 140737488345136, 140737488345120, 3488983867, 4299206140, 4294967295, 4238103, 4294967295, 67108864, 140737251060432, 140737353872624, 0} } }}, backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0 } h = { handler = 12176114, var = 12124434, chosen_clause = 4294967296, tag = 0x7fffffffd760, next = 0x0 } #17 0x00000000004dd5e6 in top_level_1 (ignore=ignore <at> entry=12124434) at keyboard.c:1185 No locals. #18 0x000000000054e48e in internal_catch (tag=<optimized out>, func=func <at> entry=0x4dd580 <top_level_1>, arg=12124434) at eval.c:1060 c = { tag = 12171954, val = 12124434, next = 0x0, gcpro = 0x0, jmp = {{ __jmpbuf = {1, 7163789923458151104, 12124434, 4000, 140737488346000, 1, -7163791674762661184, 7163791298990764736}, __mask_was_saved = 0, __saved_mask = { __val = {140737351972645, 400, 5, 0, 0, 0, 0, 227633266711, 5849150, 532575944823, 6198499, 140737488345584, 140737488345592, 0, 140737488345584, 6198499} } }}, backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0 } #19 0x00000000004e1d9f in command_loop () at keyboard.c:1146 No locals. #20 recursive_edit_1 () at keyboard.c:779 count = 1 val = 20186704 #21 0x00000000004e20b4 in Frecursive_edit () at keyboard.c:843 count = 0 buffer = 12124434 #22 0x00000000004171d5 in main (argc=<optimized out>, argv=0x7fffffffdb98) at emacs.c:1528 dummy = 140737353873872 stack_bottom_variable = -15 '\361' do_initial_setlocale = <optimized out> dumping = <optimized out> skip_args = 1 rlim = { rlim_cur = 8720000, rlim_max = 18446744073709551615 } no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x818 <Address 0x818 out of bounds> Lisp Backtrace: "move-to-column" (0xffffd160) "command-line-1" (0xffffd2d0) "command-line" (0xffffd498) "normal-top-level" (0xffffd570) In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.8.2) of 2013-07-26 on roseapple, modified by Debian Windowing system distributor `The X.Org Foundation', version 11.0.11405000 System Description: Ubuntu 13.10 Configured using: `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes' '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' Important settings: value of $LC_TIME: en_DK.utf8 value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix default enable-multibyte-characters: t
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.