On Sun, Jul 15, 2007 at 07:25:30PM +0100, Bruce Duncan wrote: >tags 432682 + patch >thanks > >Sorry, that bug report didn't actually say anything! Here's the real >backtrace: > >Program received signal SIGSEGV, Segmentation fault. >0x0000000000403828 in ch_length () at ch.c:508 >508 if (ch_flags & CH_HELPFILE) >(gdb) bt >#0 0x0000000000403828 in ch_length () at ch.c:508 >#1 0x00000000004041cd in ch_seek (pos=0) at ch.c:419 >#2 0x000000000040b7cd in jump_loc (pos=0, sline=0) at jump.c:199 >#3 0x000000000040baf4 in repaint () at jump.c:98 >#4 0x00000000004105fb in error (fmt=0x415328 "%s", parg=0x7fffd65b9a10) at >output.c:529 >#5 0x00000000004092b6 in edit_ifile (ifile=0x6277d0) at edit.c:311 >#6 0x000000000040946a in edit_istep (h=0x6277d0, n=-1, dir=1) at edit.c:527 >#7 0x0000000000407167 in commands () at command.c:1412 >#8 0x0000000000402158 in main (argc=<value optimized out>, argv=<value >optimized out>) at main.c:286 > >My interpretation of the crash is that less is attempting to get information >about the file it's failing to display in order to decide where to place the >cursor. It decides that the display is "squished", meaning that the first >displayed line is not at the top of the screen, and wants to repaint the >screen. This repaint causes it to try to find out the final cursor location >from the current position in the (non-existant) file, and crash. > >This repainting behaviour seemed to have no effect in any test case I could >come up with, so I removed it. The patch that does this is: > >--- output.c.orig 2007-07-15 18:51:25.000000000 +0100 >+++ output.c 2007-07-15 19:07:09.000000000 +0100 >@@ -525,8 +525,6 @@ > > if (any_display && is_tty) > { >- if (!oldbot) >- squish_check(); > at_exit(); > clear_bot(); > at_enter(AT_STANDOUT); > >Of course, less's assessment that the display is "squished" is wrong anyway >(it blanked the screen before displaying this short file) which is why I >believe it's safe to remove it. However, if you disagree with this resolution >you might like to investigate making the squished detection more clever. > >Bruce
I couldn't reproduce this bug with less 418-1. less -V less 418 echo hello > test echo goodbye > test2 chmod -r test2 ls -l test* -rw-r--r-- 1 anibal anibal 6 2009-04-18 00:36 test --w------- 1 anibal anibal 8 2009-04-18 00:36 test2 less test test2 hello test (file 1 of 2) (END) - Next: test2 When I enter :n, I get: test2: Permission denied (press RETURN) followed by: No next file (press RETURN) and then by: test (END) and less finishes when I enter q. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org