On Wed, Apr 03, 2002 at 04:38:01AM -0800, Eduardo Chappa wrote:
Hello,
This message has two parts, the long story, and the short story. First
the short story.
As far as I understand, the function tgetent, has two parameters, which
are documented in the manual for termcap(3) and tgetent, the first one is
of type (char *). According to the manual of the unix system I am using
the length of this string is supposed to be 1024. I have found that the
entries for the linux and cygwin terminal are over 1024 characters long,
which causes this function to corrupt the stack and the program dump core.
A classical buffer overflow bug. I believe this is an issue with the
termcap database, which I believe should be shortened to satisfy the 1024
characters length requirement in (it seems) most (if not all) Unix
systems.
http://cygwin.com/lists.html#see-above
http://cygwin.com/cgi-bin/htsearch?method=andsort=threadrestrict=%2Fml%2Fcygwin%2Fwords=termcap+1024
Now the long story (which puts the short story in context). My real
goal was to compile Pine for cygwin, which I did, and you are welcome
to give it a try by downloading it from my web page (address below).
The problem that I had was that every time that I started Pine in the
cygwin terminal, it would dump core, due to the problem described
above. Pine needed to be executed under rxvt, for example, in order to
not to make it dump core. Although I believed for some time that rxvt
was a requirement in order to execute Pine, now I realize that it is
not, but my request instead is to make the work around of giving more
space to the first argument of tgetent disappear.
Is there any chance that both the linux and the cygwin entries will be
shortened to less than 1024 characters?, or should I just have to
accept this as a given?
Bottom line: If you want to submit a patch which accomplishes this
shortening without eliminating functionality, please do.
Otherwise, increasing the size of your buffer is the correct solution.
cgf
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/