Age | Commit message (Collapse) | Author |
|
bug #1:
static_fd = -1;
close(static_fd);
DOH!
bug #2:
if (utmp_fd == -1) {
__setutent();
}
if (utmp_fd == -1) {
return NULL;
}
if utmp_fd == -1, we call _setutent().
if __setutent() opens a fd, utmp_fd (a parameter)
wouldn't change, the second check is bogus.
We need to use static_fd instead in second check.
Which makes clear that having utmp_fd parameter
is wrong. See the patch for a complete fix.
Shrink comes from simplifying fcntl(static_fd, F_SETFD, FD_CLOEXEC):
text data bss dec hex filename
- 661 8 384 1053 41d libc/misc/utmp/utent.o
+ 604 8 384 996 3e4 libc/misc/utmp/utent.o
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Appears to build fine (several .configs tried)
|
|
|
|
|
|
|
|
in string.h and strings.h. This caught unguarded string ops in
libc/inet/ethers.c __ether_line_w() function.
I will wait for fallout reports for a week or so,
then continue converting more libc_hidden_proto's.
|
|
(patch by Bernd Schmidt <bernds_cb1 at t-online.de>)
|
|
|
|
things, and avoid potential deadlocks caused when a thread holding a uClibc
internal lock get canceled and terminates without releasing the lock. This
change also provides a single place, bits/uClibc_mutex.h, for thread libraries
to modify to change all instances of internal locking.
|
|
functions, then we worry about shrinking it ...
|
|
|
|
|
|
utent.c has a few problems with mutex locking when used in a binary that was linked with pthreads. The are a few deadlock conditions where functions may be called which lock the utmplock but never release it and where a function that hold the lock calls other functions which try to relock the same lock. For example, notice in the __getutent function the error condition does not unlock the semaphore. The problem is not visible when pthreads isn't used since the lock/unlock functions are NOOP functions.
|
|
|
|
missing headers, other jump relocs removed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
were including libc-lock.h which had a bunch of weak pragmas. Also,
uClibc supplied a number of no-op weak thread functions even though
many weren't needed. This combined result was that sometimes the
functional versions of thread functions in pthread would not override
the weaks in libc.
While fixing this, I also prepended double-underscore to all necessary
weak thread funcs in uClibc, and removed all unused weaks.
I did a test build, but haven't tested this since these changes are
a backport from my working tree. I did test the changes there and
no longer need to explicitly add -lpthread in the perl build for
perl to pass its thread self tests.
|
|
|
|
to mac12@po.cwru.edu for spotting this one.
|
|
uninitialized memory. Prepare to reentrantify the utmp
stuff.
-Erik
|
|
was only writing the first sizeof-a-pointer bytes to the utmp
file. oops.
-Erik
|
|
was only opening utmp readonly. Oops.
|
|
|
|
NULL as expected.
|
|
|
|
|