This is the mail archive of the ecos-patches@sourceware.org mailing list for the eCos 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: termios patch


On Wed, 2 Jun 2010, Jay Foster wrote:
The attached patch fixes tcflush() and tcdrain() in the termios
package.  These functions would call the fo_getinfo() function of the
file system code with a 0 length (the length value is unused).  The
fo_getinfo() code in devfs.cxx would then convert this into a non-NULL
pointer to a value of 0 when calling cyg_io_get_config().  This
combination (non-NULL pointer to 0 value) is a special case in
cyg_io_get_config() used to determine if the get_config method is
available for the device.  It always returns success (ENOERR) when the
method is defined and does nothing.

By changing the length value passed to the fo_getinfo() function to a
non-zero value, this avoids this.

Hi Jay,


Thank you for good catch!

RFC: May be we need even in an one-line comment/note in termios.c to
notice user about that "strange" length? Or may be to use some local
macro there, e.g.

#define NOBUF_NOCHECK NULL,1

I need to have the best opinion. Jifl?

Sergei


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