On Feb 22 02:13, lumumba wrote: > > This function causes SIGSEGV when it's called with buf == NULL. Also it > returns EINVAL with mode != "a". > It appears it wasn't tested with buf == NULL at all: > fmemopen.c:309 > if (!buf) > { > /* r+/w+/a+, and no buf: file starts empty. */ > c->buf = (char *) (c + 1); > *(char *) buf = '\0'; // Should be c->buf? > c->pos = c->eof = 0; > c->append = (flags & __SAPP) != 0; > } > This condition looks strange: > fmemopen.c:284 > if (!size || !(buf || flags & __SAPP)) // Why? > { > ptr->_errno = EINVAL; > return NULL; > }
This is a newlib issue in the first place, so the right mailing list would have been newlib AT sourceware DOT org. However, I just applied a patch which should fix the issue. Thanks for the report, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- 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