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

Reply via email to