This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Termcap issue in cygwin


On Wed, Apr 03, 2002 at 04:38:01AM -0800, Eduardo Chappa wrote:
>    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.

A small part of the termcap info page:

   With the Unix version of termcap, you must allocate space for the
description yourself and pass the address of the space as the argument
BUFFER.  There is no way you can tell how much space is needed, so the
convention is to allocate a buffer 2048 characters long and assume that
is enough.  (Formerly the convention was to allocate 1024 characters and
assume that was enough.  But one day, for one kind of terminal, that was
not enough.)

It even has some examples.


Kurt


--
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]