[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#27066: dpkg: close(134547020) in dpkg-deb --fsys-tarfile



Package: dpkg
Version: 1.4.0.27

I had occasion to strace dpkg-deb, and I found a bizarre call to close.
I haven't tracked the problem down further.

I ran dpkg-deb with the command

strace -f -o trace dpkg-deb --fsys-tarfile /usr/src/pcmcia-modules-2.0.35_3.0.0-9+custom.1.0_i386.deb > out

The suspicious close() is on line 68 of the included trace.  Search for 
134547020 if the line breaks are messed up.

Andrew

7215  execve("/usr/bin/dpkg-deb", ["dpkg-deb", "--fsys-tarfile", "/usr/src/pcmcia-modules-2.0.35_3.0.0-9+custom.1.0_i386.deb"], [/* 12 vars */]) = 0
7215  brk(0)                            = 0x805334c
7215  open("/etc/ld.so.preload", O_RDONLY) = 4
7215  fstat(4, {st_mode=S_IFREG|0644, st_size=45, ...}) = 0
7215  mmap(0, 45, PROT_READ|PROT_WRITE, MAP_PRIVATE, 4, 0) = 0x4000c000
7215  close(4)                          = 0
7215  open("/home/andrew/projects/wsproxy/lib/connect.so", O_RDONLY) = 4
7215  mmap(0, 4096, PROT_READ, MAP_PRIVATE, 4, 0) = 0x4000d000
7215  munmap(0x4000d000, 4096)          = 0
7215  mmap(0, 19608, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4000d000
7215  mprotect(0x40010000, 7320, PROT_NONE) = 0
7215  mmap(0x40010000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x2000) = 0x40010000
7215  mmap(0x40011000, 3224, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40011000
7215  close(4)                          = 0
7215  munmap(0x4000c000, 45)            = 0
7215  open("/etc/ld.so.cache", O_RDONLY) = 4
7215  fstat(4, {st_mode=S_IFREG|0644, st_size=5094, ...}) = 0
7215  mmap(0, 5094, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40012000
7215  close(4)                          = 0
7215  open("/usr/lib/libdpkg.so.0", O_RDONLY) = 4
7215  mmap(0, 4096, PROT_READ, MAP_PRIVATE, 4, 0) = 0x4000c000
7215  munmap(0x4000c000, 4096)          = 0
7215  mmap(0, 83236, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40014000
7215  mprotect(0x40020000, 34084, PROT_NONE) = 0
7215  mmap(0x40020000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xb000) = 0x40020000
7215  mmap(0x40021000, 29988, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40021000
7215  close(4)                          = 0
7215  open("/lib/libc.so.6", O_RDONLY)  = 4
7215  mmap(0, 4096, PROT_READ, MAP_PRIVATE, 4, 0) = 0x4000c000
7215  munmap(0x4000c000, 4096)          = 0
7215  mmap(0, 657588, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40029000
7215  mprotect(0x400b7000, 75956, PROT_NONE) = 0
7215  mmap(0x400b7000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x8d000) = 0x400b7000
7215  mmap(0x400be000, 47284, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400be000
7215  close(4)                          = 0
7215  open("/lib/libdl.so.2", O_RDONLY) = 4
7215  mmap(0, 4096, PROT_READ, MAP_PRIVATE, 4, 0) = 0x4000c000
7215  munmap(0x4000c000, 4096)          = 0
7215  mmap(0, 13536, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x400ca000
7215  mprotect(0x400cd000, 1248, PROT_NONE) = 0
7215  mmap(0x400cd000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x2000) = 0x400cd000
7215  close(4)                          = 0
7215  munmap(0x40012000, 5094)          = 0
7215  personality(PER_LINUX)            = 0
7215  getpid()                          = 7215
7215  brk(0)                            = 0x805334c
7215  brk(0x8053384)                    = 0x8053384
7215  brk(0x8054000)                    = 0x8054000
7215  open("/usr/src/pcmcia-modules-2.0.35_3.0.0-9+custom.1.0_i386.deb", O_RDONLY) = 4
7215  fstat(4, {st_mode=S_IFREG|0644, st_size=113090, ...}) = 0
7215  fstat(4, {st_mode=S_IFREG|0644, st_size=113090, ...}) = 0
7215  mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4000c000
7215  read(4, "!<arch>\ndebian-binary   9034805"..., 4096) = 4096
7215  lseek(4, -2354, SEEK_CUR)         = 1742
7215  pipe([5, 6])                      = 0
7215  fork()                            = 7216
7215  close(6)                          = 0
7215  fork()                            = 7217
7215  close(5 <unfinished ...>
7217  dup2(5, 0 <unfinished ...>
7216  close(5 <unfinished ...>
7215  <... close resumed> )             = 0
7217  <... dup2 resumed> )              = 0
7215  write(2, "Yikes!  sockfd == 134547020\n", 28 <unfinished ...>
7217  execve("/usr/local/bin/gzip", ["gzip", "-dc"], [/* 12 vars */] <unfinished ...>
7215  <... write resumed> )             = 28
7217  <... execve resumed> )            = -1 ENOENT (No such file or directory)
7215  close(134547020 <unfinished ...>
7217  execve("/usr/bin/gzip", ["gzip", "-dc"], [/* 12 vars */] <unfinished ...>
7215  <... close resumed> )             = -1 EBADF (Bad file descriptor)
7217  <... execve resumed> )            = -1 ENOENT (No such file or directory)
7215  wait4(7217,  <unfinished ...>
7216  <... close resumed> )             = 0
7217  execve("/bin/gzip", ["gzip", "-dc"], [/* 12 vars */] <unfinished ...>
7216  fcntl(6, F_GETFL)                 = 0x1 (flags O_WRONLY)
7216  fstat(6, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
7216  mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40012000
7216  lseek(6, 0, SEEK_CUR)             = -1 ESPIPE (Illegal seek)
7216  read(4, "\37\213\10\0\321\4\3325\2\3\354z"..., 4096) = 4096
7216  read(4, "\371\351C\307\325q\351^\264_r\322"..., 4096) = 4096
7216  write(6, "\37\213\10\0\321\4\3325\2\3\354z"..., 4096) = 4096
7216  read(4, "\246\301f\23\36\323\16\16\254\320"..., 4096) = 4096
7216  write(6, "\371\351C\307\325q\351^\264_r\322"..., 4096 <unfinished ...>
7217  <... execve resumed> )            = 0
7217  brk(0)                            = 0x80a4160
7217  open("/etc/ld.so.preload", O_RDONLY) = 6
7217  fstat(6, {st_mode=S_IFREG|0644, st_size=45, ...}) = 0
7217  mmap(0, 45, PROT_READ|PROT_WRITE, MAP_PRIVATE, 6, 0) = 0x4000c000
7217  close(6)                          = 0
7217  open("/home/andrew/projects/wsproxy/lib/connect.so", O_RDONLY) = 6
7217  mmap(0, 4096, PROT_READ, MAP_PRIVATE, 6, 0) = 0x4000d000
7217  munmap(0x4000d000, 4096)          = 0
7217  mmap(0, 19608, PROT_READ|PROT_EXEC, MAP_PRIVATE, 6, 0) = 0x4000d000
7217  mprotect(0x40010000, 7320, PROT_NONE) = 0
7217  mmap(0x40010000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x2000) = 0x40010000
7217  mmap(0x40011000, 3224, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40011000
7217  close(6)                          = 0
7217  munmap(0x4000c000, 45)            = 0
7217  open("/etc/ld.so.cache", O_RDONLY) = 6
7217  fstat(6, {st_mode=S_IFREG|0644, st_size=5094, ...}) = 0
7217  mmap(0, 5094, PROT_READ, MAP_PRIVATE, 6, 0) = 0x40012000
7217  close(6)                          = 0
7217  open("/lib/libc.so.6", O_RDONLY)  = 6
7217  mmap(0, 4096, PROT_READ, MAP_PRIVATE, 6, 0) = 0x4000c000
7217  munmap(0x4000c000, 4096)          = 0
7217  mmap(0, 657588, PROT_READ|PROT_EXEC, MAP_PRIVATE, 6, 0) = 0x40014000
7217  mprotect(0x400a2000, 75956, PROT_NONE) = 0
7217  mmap(0x400a2000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x8d000) = 0x400a2000
7217  mmap(0x400a9000, 47284, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400a9000
7217  close(6)                          = 0
7217  open("/lib/libdl.so.2", O_RDONLY) = 6
7217  mmap(0, 4096, PROT_READ, MAP_PRIVATE, 6, 0) = 0x4000c000
7217  munmap(0x4000c000, 4096)          = 0
7217  mmap(0, 13536, PROT_READ|PROT_EXEC, MAP_PRIVATE, 6, 0) = 0x400b5000
7217  mprotect(0x400b8000, 1248, PROT_NONE) = 0
7217  mmap(0x400b8000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x2000) = 0x400b8000
7217  close(6)                          = 0
7217  munmap(0x40012000, 5094)          = 0
7217  personality(PER_LINUX)            = 0
7217  getpid()                          = 7217
7217  sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}) = 0
7217  sigaction(SIGINT, {0x804b710, [], SA_STACK|SA_NOCLDSTOP|0x487fa}, {SIG_IGN}) = 0
7217  sigaction(SIGTERM, {SIG_IGN}, {SIG_DFL}) = 0
7217  sigaction(SIGTERM, {0x804b710, [], SA_STACK|SA_NOCLDSTOP|0x487fa}, {SIG_IGN}) = 0
7217  sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}) = 0
7217  sigaction(SIGHUP, {0x804b710, [], SA_STACK|SA_NOCLDSTOP|0x487fa}, {SIG_IGN}) = 0
7217  ioctl(0, TCGETS, 0xbffffd98)      = -1 EINVAL (Invalid argument)
7217  read(0, "\37\213\10\0\321\4\3325\2\3\354z"..., 32768) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4,  <unfinished ...>
7217  <... read resumed> "\371\351C\307\325q\351^\264_r\322"..., 28672) = 4096
7216  <... read resumed> "\310\373r\253\330g\5\35m\352\346"..., 4096) = 4096
7217  read(0,  <unfinished ...>
7216  write(6, "\246\301f\23\36\323\16\16\254\320"..., 4096 <unfinished ...>
7217  <... read resumed> "\246\301f\23\36\323\16\16\254\320"..., 24576) = 4096
7217  read(0,  <unfinished ...>
7216  <... write resumed> )             = 4096
7216  read(4, "\211=l\0010J}\307\24I\306\365\323"..., 4096) = 4096
7216  write(6, "\310\373r\253\330g\5\35m\352\346"..., 4096 <unfinished ...>
7217  <... read resumed> "\310\373r\253\330g\5\35m\352\346"..., 20480) = 4096
7217  read(0,  <unfinished ...>
7216  <... write resumed> )             = 4096
7216  read(4, "<\355h8\310\3444\202\243\1\373\243"..., 4096) = 4096
7216  write(6, "\211=l\0010J}\307\24I\306\365\323"..., 4096 <unfinished ...>
7217  <... read resumed> "\211=l\0010J}\307\24I\306\365\323"..., 16384) = 4096
7217  read(0,  <unfinished ...>
7216  <... write resumed> )             = 4096
7216  read(4, "\236s\202o\270$\32X\316|\307\315"..., 4096) = 4096
7216  write(6, "<\355h8\310\3444\202\243\1\373\243"..., 4096 <unfinished ...>
7217  <... read resumed> "<\355h8\310\3444\202\243\1\373\243"..., 12288) = 4096
7217  read(0,  <unfinished ...>
7216  <... write resumed> )             = 4096
7216  read(4, "|\5\353\321n9\357\214\365h\326\240"..., 4096) = 4096
7216  write(6, "\236s\202o\270$\32X\316|\307\315"..., 4096 <unfinished ...>
7217  <... read resumed> "\236s\202o\270$\32X\316|\307\315"..., 8192) = 4096
7217  read(0,  <unfinished ...>
7216  <... write resumed> )             = 4096
7216  read(4, "\213V\224\3000\306;\20\373\254m\320"..., 4096) = 4096
7216  write(6, "|\5\353\321n9\357\214\365h\326\240"..., 4096 <unfinished ...>
7217  <... read resumed> "|\5\353\321n9\357\214\365h\326\240"..., 4096) = 4096
7216  <... write resumed> )             = 4096
7216  read(4, "\220*jk\213\205\262]\325U;\260\260"..., 4096) = 4096
7216  write(6, "\213V\224\3000\306;\20\373\254m\320"..., 4096) = 4096
7216  read(4, "V\205\240\264\204:j\207\310\355U"..., 4096) = 4096
7216  write(6, "\220*jk\213\205\262]\325U;\260\260"..., 4096 <unfinished ...>
7217  brk(0)                            = 0x80a4160
7217  brk(0x80a4380)                    = 0x80a4380
7217  brk(0x80a5000)                    = 0x80a5000
7217  brk(0x80a7000)                    = 0x80a7000
7217  write(1, "./\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 32768) = 32768
7217  write(1, "\305\10t\f\307\3 \0\0\0\353\n\215"..., 32768) = 32768
7217  read(0, "\213V\224\3000\306;\20\373\254m\320"..., 32768) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4,  <unfinished ...>
7217  <... read resumed> "\220*jk\213\205\262]\325U;\260\260"..., 28672) = 4096
7216  <... read resumed> "\355\250\367k}]\20\n\272\254\26\331"..., 4096) = 4096
7217  read(0,  <unfinished ...>
7216  write(6, "V\205\240\264\204:j\207\310\355U"..., 4096 <unfinished ...>
7217  <... read resumed> "V\205\240\264\204:j\207\310\355U"..., 24576) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "\351\314\337H\334\30+)\7\227\247"..., 4096) = 4096
7216  write(6, "\355\250\367k}]\20\n\272\254\26\331"..., 4096 <unfinished ...>
7217  <... read resumed> "\355\250\367k}]\20\n\272\254\26\331"..., 20480) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "\200\342dT\334(\2365\214\347\334"..., 4096) = 4096
7216  write(6, "\351\314\337H\334\30+)\7\227\247"..., 4096 <unfinished ...>
7217  <... read resumed> "\351\314\337H\334\30+)\7\227\247"..., 16384) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "\357DV\340\331\300\2073\201\276\330"..., 4096) = 4096
7216  write(6, "\200\342dT\334(\2365\214\347\334"..., 4096 <unfinished ...>
7217  <... read resumed> "\200\342dT\334(\2365\214\347\334"..., 12288) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "0\35\276q%\3057\256\274Z\370F\213"..., 4096) = 4096
7216  write(6, "\357DV\340\331\300\2073\201\276\330"..., 4096 <unfinished ...>
7217  <... read resumed> "\357DV\340\331\300\2073\201\276\330"..., 8192) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "e\346\211\250\203\31\360\31\236T"..., 4096) = 4096
7216  write(6, "0\35\276q%\3057\256\274Z\370F\213"..., 4096 <unfinished ...>
7217  <... read resumed> "0\35\276q%\3057\256\274Z\370F\213"..., 4096) = 4096
7217  write(1, "U\211\345\213M\10\213U\f\205\311"..., 32768 <unfinished ...>
7216  <... write resumed> )             = 4096
7217  <... write resumed> )             = 32768
7216  read(4,  <unfinished ...>
7217  write(1, "\0add_timer\0init_module\0regist"..., 32768 <unfinished ...>
7216  <... read resumed> "2\224\0\264\305v.\310V\32\341|\355"..., 4096) = 4096
7217  <... write resumed> )             = 32768
7216  write(6, "e\346\211\250\203\31\360\31\236T"..., 4096 <unfinished ...>
7217  read(0,  <unfinished ...>
7216  <... write resumed> )             = 4096
7216  read(4,  <unfinished ...>
7217  <... read resumed> "e\346\211\250\203\31\360\31\236T"..., 32768) = 4096
7216  <... read resumed> "u\16\355\201\306\3435>\221\317K\23"..., 4096) = 4096
7217  read(0,  <unfinished ...>
7216  write(6, "2\224\0\264\305v.\310V\32\341|\355"..., 4096 <unfinished ...>
7217  <... read resumed> "2\224\0\264\305v.\310V\32\341|\355"..., 28672) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "3\6T\16\317\240\305\225K\245\24\23"..., 4096) = 4096
7216  write(6, "u\16\355\201\306\3435>\221\317K\23"..., 4096 <unfinished ...>
7217  <... read resumed> "u\16\355\201\306\3435>\221\317K\23"..., 24576) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "[@\31X\245<tW,}Z\216U\2207\252\271"..., 4096) = 4096
7216  write(6, "3\6T\16\317\240\305\225K\245\24\23"..., 4096 <unfinished ...>
7217  <... read resumed> "3\6T\16\317\240\305\225K\245\24\23"..., 20480) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "T2\247\312\3055\332\367{\203~1\335"..., 4096) = 4096
7216  write(6, "[@\31X\245<tW,}Z\216U\2207\252\271"..., 4096 <unfinished ...>
7217  <... read resumed> "[@\31X\245<tW,}Z\216U\2207\252\271"..., 16384) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "\327\323\201bGK@\37R\304\301\301"..., 4096) = 4096
7216  write(6, "T2\247\312\3055\332\367{\203~1\335"..., 4096 <unfinished ...>
7217  <... read resumed> "T2\247\312\3055\332\367{\203~1\335"..., 12288) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, "\211*\334e\257k\256\256\344uX:U\357"..., 4096) = 4096
7216  write(6, "\327\323\201bGK@\37R\304\301\301"..., 4096 <unfinished ...>
7217  <... read resumed> "\327\323\201bGK@\37R\304\301\301"..., 8192) = 4096
7216  <... write resumed> )             = 4096
7217  read(0,  <unfinished ...>
7216  read(4, ")\5\345\324\366\0377\"\317;,\30|"..., 4096) = 4096
7216  write(6, "\211*\334e\257k\256\256\344uX:U\357"..., 4096 <unfinished ...>
7217  <... read resumed> "\211*\334e\257k\256\256\344uX:U\357"..., 4096) = 4096
7216  <... write resumed> )             = 4096
7217  write(1, "\10\1\0\0\0\0\0\0\0\0\0\0\20\0\0"..., 32768 <unfinished ...>
7216  read(4,  <unfinished ...>
7217  <... write resumed> )             = 32768
7216  <... read resumed> "0\307\356\212\27\351\17\304\v\335"..., 4096) = 4096
7216  write(6, ")\5\345\324\366\0377\"\317;,\30|"..., 4096) = 4096
7216  read(4, "\215\2078\226\244\203\rs[\7\360\324"..., 4096) = 4096
7216  write(6, "0\307\356\212\27\351\17\304\v\335"..., 4096 <unfinished ...>
7217  write(1, "\32\17\0\0\1\4\0\0G\17\0\0\2C\0\0"..., 32768) = 32768
7217  write(1, "GxPj\30\350\374\377\377\377\211\306"..., 32768) = 32768
7217  read(0, ")\5\345\324\366\0377\"\317;,\30|"..., 32768) = 4096
7216  <... write resumed> )             = 4096
7216  read(4, "_\330\274[\323\302\334i\334\200&"..., 4096) = 756
7216  write(6, "\215\2078\226\244\203\rs[\7\360\324"..., 4096 <unfinished ...>
7217  read(0, "0\307\356\212\27\351\17\304\v\335"..., 28672) = 4096
7216  <... write resumed> )             = 4096
7216  write(6, "_\330\274[\323\302\334i\334\200&"..., 755 <unfinished ...>
7217  read(0, "\215\2078\226\244\203\rs[\7\360\324"..., 24576) = 4096
7216  <... write resumed> )             = 755
7216  close(6)                          = 0
7216  munmap(0x40012000, 4096)          = 0
7216  lseek(4, -1, SEEK_CUR)            = 113089
7216  munmap(0x4000c000, 4096)          = 0
7216  _exit(0)                          = ?
7217  read(0, "_\330\274[\323\302\334i\334\200&"..., 20480) = 755
7217  read(0, "", 19725)                = 0
7217  write(1, "-setup\0wv_82593_config(): mc-se"..., 32768) = 32768
7217  write(1, "\1\3\0\0\371\f\0\0\1\3\0\0\270\r"..., 14336) = 14336
7217  _exit(0)                          = ?
7215  <... wait4 resumed> 0xbffffb9c, 0, NULL) = ? ERESTARTSYS (To be restarted)
7215  --- SIGCHLD (Child exited) ---
7215  wait4(7217, [WIFEXITED(s) && WEXITSTATUS(s) == 0], 0, NULL) = 7217
7215  --- SIGCHLD (Child exited) ---
7215  wait4(7216, [WIFEXITED(s) && WEXITSTATUS(s) == 0], 0, NULL) = 7216
7215  munmap(0x4000c000, 4096)          = 0
7215  _exit(0)                          = ?


-- System Information
Debian Release: slink
Kernel Version: Linux debian 2.0.35 #1 Tue Aug 18 14:31:05 EDT 1998 i586 unknown

Versions of the packages dpkg depends on:
ii  libc6           2.0.7u-1       The GNU C library version 2 (run-time files)
ii  libstdc++2.8    2.90.29-0.6    The GNU stdc++ library (egcs version)
ii  ncurses3.4      1.9.9g-8.10    Video terminal manipulation - shared librari


Reply to: