This is the mail archive of the
mailing list for the Cygwin project.
Re: Issues in utmp/utmpx headers
- From: Brian Inglis <Brian dot Inglis at SystematicSw dot ab dot ca>
- To: cygwin at cygwin dot com
- Date: Mon, 4 Jan 2016 18:30:27 +0000 (UTC)
- Subject: Re: Issues in utmp/utmpx headers
- Authentication-results: sourceware.org; auth=none
- References: <CALiPeumt3nnNr=6P_p7WUUy1QHk6CBHXpv0i36Y3QanqoN3DbQ at mail dot gmail dot com> <loom dot 20151227T200026-993 at post dot gmane dot org> <CALiPeun3v+vME=6YU5bgvKp2ENv+csuLLSdKu5Jj0T9x66eQjw at mail dot gmail dot com> <loom dot 20151229T054517-919 at post dot gmane dot org> <CALiPeunvW2-Wwxk5sW2ZNbwtW5PbstkmHa12=PH0dZMxz+RnRQ at mail dot gmail dot com>
> 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
> generates a debugging dll (i.e. contains debug symbols usable by
> gdb)? If not, what modifications are needed to create one?
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
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple