diff options
Diffstat (limited to 'libc/misc/utmp')
-rw-r--r-- | libc/misc/utmp/utent.c | 13 | ||||
-rw-r--r-- | libc/misc/utmp/wtent.c | 7 |
2 files changed, 11 insertions, 9 deletions
diff --git a/libc/misc/utmp/utent.c b/libc/misc/utmp/utent.c index c83f45e73..a678130a3 100644 --- a/libc/misc/utmp/utent.c +++ b/libc/misc/utmp/utent.c @@ -19,6 +19,7 @@ #include <errno.h> #include <string.h> #include <utmp.h> +#include <not-cancel.h> #include <bits/uClibc_mutex.h> __UCLIBC_MUTEX_STATIC(utmplock, PTHREAD_MUTEX_INITIALIZER); @@ -46,16 +47,16 @@ static const char *static_ut_name = default_file_name; static_if_threaded void __setutent(void) { if (static_fd < 0) { - static_fd = open(static_ut_name, O_RDWR | O_CLOEXEC); + static_fd = open_not_cancel_2(static_ut_name, O_RDWR | O_CLOEXEC); if (static_fd < 0) { - static_fd = open(static_ut_name, O_RDONLY | O_CLOEXEC); + static_fd = open_not_cancel_2(static_ut_name, O_RDONLY | O_CLOEXEC); if (static_fd < 0) { return; /* static_fd remains < 0 */ } } #ifndef __ASSUME_O_CLOEXEC /* Make sure the file will be closed on exec() */ - fcntl(static_fd, F_SETFD, FD_CLOEXEC); + fcntl_not_cancel(static_fd, F_SETFD, FD_CLOEXEC); #endif return; } @@ -81,7 +82,7 @@ static_if_threaded struct utmp *__getutent(void) } } - if (read(static_fd, &static_utmp, sizeof(static_utmp)) == sizeof(static_utmp)) { + if (read_not_cancel(static_fd, &static_utmp, sizeof(static_utmp)) == sizeof(static_utmp)) { return &static_utmp; } @@ -103,7 +104,7 @@ void endutent(void) { __UCLIBC_MUTEX_LOCK(utmplock); if (static_fd >= 0) - close(static_fd); + close_not_cancel_no_status(static_fd); static_fd = -1; __UCLIBC_MUTEX_UNLOCK(utmplock); } @@ -193,7 +194,7 @@ int utmpname(const char *new_ut_name) } if (static_fd >= 0) { - close(static_fd); + close_not_cancel_no_status(static_fd); static_fd = -1; } __UCLIBC_MUTEX_UNLOCK(utmplock); diff --git a/libc/misc/utmp/wtent.c b/libc/misc/utmp/wtent.c index e73d99feb..5ab743d9b 100644 --- a/libc/misc/utmp/wtent.c +++ b/libc/misc/utmp/wtent.c @@ -13,6 +13,7 @@ #include <utmp.h> #include <fcntl.h> #include <sys/file.h> +#include <not-cancel.h> #if 0 /* This is enabled in uClibc/libutil/logwtmp.c */ @@ -36,12 +37,12 @@ void updwtmp(const char *wtmp_file, const struct utmp *lutmp) { int fd; - fd = open(wtmp_file, O_APPEND | O_WRONLY); + fd = open_not_cancel(wtmp_file, O_APPEND | O_WRONLY, 0); if (fd >= 0) { if (lockf(fd, F_LOCK, 0) == 0) { - write(fd, lutmp, sizeof(*lutmp)); + write_not_cancel(fd, lutmp, sizeof(struct utmp)); lockf(fd, F_ULOCK, 0); - close(fd); + close_not_cancel_no_status(fd); } } } |