summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/misc/utmp/utent.c13
-rw-r--r--libc/unistd/getpass.c9
2 files changed, 6 insertions, 16 deletions
diff --git a/libc/misc/utmp/utent.c b/libc/misc/utmp/utent.c
index d71aa312f..6c1793e65 100644
--- a/libc/misc/utmp/utent.c
+++ b/libc/misc/utmp/utent.c
@@ -14,7 +14,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
-#include <malloc.h>
#include <fcntl.h>
#include <paths.h>
#include <errno.h>
@@ -30,7 +29,6 @@ libc_hidden_proto(open)
libc_hidden_proto(fcntl)
libc_hidden_proto(close)
libc_hidden_proto(lseek)
-libc_hidden_proto(__uc_malloc)
#include <bits/uClibc_mutex.h>
__UCLIBC_MUTEX_STATIC(utmplock, PTHREAD_MUTEX_INITIALIZER);
@@ -38,10 +36,9 @@ __UCLIBC_MUTEX_STATIC(utmplock, PTHREAD_MUTEX_INITIALIZER);
/* Some global crap */
-static const char default_file_name[] = _PATH_UTMP;
-
static int static_fd = -1;
-static struct utmp *static_utmp;
+static struct utmp static_utmp;
+static const char default_file_name[] = _PATH_UTMP;
static const char *static_ut_name = (const char *) default_file_name;
/* This function must be called with the LOCK held */
@@ -92,11 +89,9 @@ static struct utmp *__getutent(int utmp_fd)
return NULL;
}
- free(static_utmp);
- static_utmp = __uc_malloc(sizeof(*static_utmp));
- if (read(utmp_fd, (char *) static_utmp, sizeof(*static_utmp)) == sizeof(*static_utmp))
+ if (read(utmp_fd, (char *) &static_utmp, sizeof(struct utmp)) == sizeof(struct utmp))
{
- ret = static_utmp;
+ ret = &static_utmp;
}
return ret;
diff --git a/libc/unistd/getpass.c b/libc/unistd/getpass.c
index 08bf23636..f17a1d71d 100644
--- a/libc/unistd/getpass.c
+++ b/libc/unistd/getpass.c
@@ -20,7 +20,7 @@
#include <string.h>
#include <termios.h>
#include <unistd.h>
-#include <malloc.h>
+#include <string.h>
#if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
@@ -37,7 +37,6 @@ libc_hidden_proto(fputs)
libc_hidden_proto(fputc)
libc_hidden_proto(putc)
libc_hidden_proto(__fputc_unlocked)
-libc_hidden_proto(__uc_malloc)
/* It is desirable to use this bit on systems that have it.
The only bit of terminal state we want to twiddle is echoing, which is
@@ -51,16 +50,12 @@ libc_hidden_proto(__uc_malloc)
char * getpass (const char *prompt)
{
- static char *buf;
-
FILE *in, *out;
struct termios s, t;
int tty_changed;
+ static char buf[PWD_BUFFER_SIZE];
int nread;
- free(buf);
- buf = __uc_malloc(PWD_BUFFER_SIZE);
-
/* Try to write to and read from the terminal if we can.
If we can't open the terminal, use stderr and stdin. */