Segfault using `watch -c` with ANSI escapes in output
Adam Dinwoodie
adam@dinwoodie.org
Wed Apr 19 06:35:00 GMT 2017
I'm seeing a segfault from using `watch -c` with commands that output
ANSI colour sequences, which is a bit sad given the whole point of the
`-c` is to get the ANSI colour sequences to be displayed.
Simple test case:
$ echo -e '\e[0;32mGreen\e[0;0m' >escapes
$ cat escapes # Text is green in my terminal
Green
$ xxd escapes
00000000: 1b5b 303b 3332 6d47 7265 656e 1b5b 303b .[0;32mGreen.[0;
00000010: 306d 0a 0m.
$ watch -c cat escapes
Segmentation fault (core dumped)
$ cat watch.exe.stackdump
Exception: STATUS_ACCESS_VIOLATION at rip=001004029B0
rax=0000000058F5FF8D rbx=0000000600001200 rcx=0000000600000060
rdx=0000000000000000 rsi=0000000000000000 rdi=0000000000000004
r8 =00000000FFFFCA2C r9 =000000018013C800 r10=0000000100000000
r11=000000010040299A r12=0000000000000004 r13=00000000FFFFCAF0
r14=0000000600000E50 r15=00000001801F82C0
rbp=0000000000000000 rsp=00000000FFFFCA60
program=C:\cygwin64\bin\watch.exe, pid 12100, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
00000000000 001004029B0 (00000000000, 00000000000, 00000000030,
30001010000FF00)
000FFFFCCC0 00180047812 (00000000000, 00000000000, 00000000000,
00000000000)
00000000000 001800455E3 (00000000000, 00000000000, 00000000000,
00000000000)
000FFFFFFF0 00180045694 (00000000000, 00000000000, 00000000000,
00000000000)
End of stack trace
This works as expected when using `watch` without the `-c` option, and
when using `watch -c` with output that doesn't include any ANSI colour
sequences.
Output from `cygcheck -srv` is attached, and `cygcheck -f
/usr/bin/watch.exe` returns `procps-ng-3.3.11-1`.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cygcheck.out
Type: application/octet-stream
Size: 73699 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20170419/9c5d8a0f/attachment.obj>
-------------- next part --------------
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list