Issues in utmp/utmpx headers
Brian Inglis
Brian.Inglis@SystematicSw.ab.ca
Mon Jan 4 18:31:00 GMT 2016
> On 29 December 2015 at 13:16, Brian Inglis
> <Brian.Inglis <at> systematicsw.ab.ca> wrote:
>> The utmpname implementation in newlib-cygwin/winsup/cygwin/syscalls.cc
>> could probably be improved to: avoid a memory leak; return -1 if
>> strdup fails, zero otherwise; default the path if a null pointer or string
>> argument is passed.
>> That would also fix utmpxname which is an alias.
>> Such a change would have little likely impact on downstream apps, but could
>> produce warnings about ignoring return values.
>> Unfortunately there appears to be no standard defined names to access the
>> default file name although GNU and Cygwin provide UTMP_FILE and UTMPX_FILE;
>> GNU also provide UTMP_FILENAME and UTMPX_FILENAME.
>> _PATH_UTMP and _PATH_UTMPX are implementation reserved names which may or
>> may not be provided, though adding the latter in paths.h would be trivial.
>> As the developers say, patches always welcome.
David Lee <mailtolky <at> gmail.com> writes:
> Sorry I am totally unfamiliar with Cygwin internals, here are some
> related questions:
> 1. how does one test a code path that involves a failed syscall
> (strdup() in this case, but can be others) in cygwin dll?
Unlikely to happen, but could test in your code for errno == ENOMEM,
as errno should never be cleared, but relies on appropriate tests.
> 2. If the call to strdup() fails, I want to debug_print() the errno
> value set by strdup(). Do I have to save errno before debug_print()
> that and restore afterwards?
Save only and use your saved copy.
> 3. Does the instruction from 6.21 in
> https://cygwin.com/faq/faq.html#faq.programming.building-cygwin
> generates a debugging dll (i.e. contains debug symbols usable by
> gdb)? If not, what modifications are needed to create one?
https://cygwin.com/faq/faq.html#faq.programming.debugging-cygwin
FAQ 6.22 explains to install cygwin-debuginfo for released dll
and that 6.21 generates debug info for custom dll.
--
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
More information about the Cygwin
mailing list