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 336c0239b..a3f01b6e9 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); @@ -34,16 +35,16 @@ static const char *static_ut_name = default_file_name;  static 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;      } @@ -70,7 +71,7 @@ static 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)) {  	ret = &static_utmp;      } @@ -81,7 +82,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);  } @@ -182,7 +183,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);  	}      }  } | 
