This is the mail archive of the cygwin 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: Issues in utmp/utmpx headers


> 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


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