summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2009-12-05 19:04:21 +0000
committered <ed@FreeBSD.org>2009-12-05 19:04:21 +0000
commite912442e98904e4d3d77ac344f9a353688ca3e9f (patch)
tree206383106ec7f48a62ccfce6df2fd9e58b3e1443 /lib/libc
parent1a90ab9d6e33a9a1598646aa6c7bce084c7217cf (diff)
downloadFreeBSD-src-e912442e98904e4d3d77ac344f9a353688ca3e9f.zip
FreeBSD-src-e912442e98904e4d3d77ac344f9a353688ca3e9f.tar.gz
Don't let the C library depend on <utmp.h>.
The maximum length of a username has nothing to do with the size of the username in the utmp files. Use MAXLOGNAME, which is defined as 17 (UT_USERSIZE + 1).
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/gen/getlogin.c1
-rw-r--r--lib/libc/gen/pwcache.c18
-rw-r--r--lib/libc/posix1e/acl_to_text.c7
3 files changed, 12 insertions, 14 deletions
diff --git a/lib/libc/gen/getlogin.c b/lib/libc/gen/getlogin.c
index dc85d3a..569cf42 100644
--- a/lib/libc/gen/getlogin.c
+++ b/lib/libc/gen/getlogin.c
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <errno.h>
#include <pwd.h>
-#include <utmp.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
diff --git a/lib/libc/gen/pwcache.c b/lib/libc/gen/pwcache.c
index 501d6ba..a8a73f1 100644
--- a/lib/libc/gen/pwcache.c
+++ b/lib/libc/gen/pwcache.c
@@ -33,13 +33,13 @@ static char sccsid[] = "@(#)pwcache.c 8.1 (Berkeley) 6/4/93";
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include <sys/param.h>
#include <sys/types.h>
#include <grp.h>
#include <pwd.h>
#include <stdio.h>
#include <string.h>
-#include <utmp.h>
#define NCACHE 64 /* power of 2 */
#define MASK (NCACHE - 1) /* bits to store with */
@@ -50,7 +50,7 @@ user_from_uid(uid_t uid, int nouser)
static struct ncache {
uid_t uid;
int found;
- char name[UT_NAMESIZE + 1];
+ char name[MAXLOGNAME];
} c_uid[NCACHE];
static int pwopen;
struct passwd *pw;
@@ -66,11 +66,11 @@ user_from_uid(uid_t uid, int nouser)
cp->uid = uid;
if (pw != NULL) {
cp->found = 1;
- (void)strncpy(cp->name, pw->pw_name, UT_NAMESIZE);
- cp->name[UT_NAMESIZE] = '\0';
+ (void)strncpy(cp->name, pw->pw_name, MAXLOGNAME - 1);
+ cp->name[MAXLOGNAME - 1] = '\0';
} else {
cp->found = 0;
- (void)snprintf(cp->name, UT_NAMESIZE, "%u", uid);
+ (void)snprintf(cp->name, MAXLOGNAME - 1, "%u", uid);
if (nouser)
return (NULL);
}
@@ -84,7 +84,7 @@ group_from_gid(gid_t gid, int nogroup)
static struct ncache {
gid_t gid;
int found;
- char name[UT_NAMESIZE + 1];
+ char name[MAXLOGNAME];
} c_gid[NCACHE];
static int gropen;
struct group *gr;
@@ -100,11 +100,11 @@ group_from_gid(gid_t gid, int nogroup)
cp->gid = gid;
if (gr != NULL) {
cp->found = 1;
- (void)strncpy(cp->name, gr->gr_name, UT_NAMESIZE);
- cp->name[UT_NAMESIZE] = '\0';
+ (void)strncpy(cp->name, gr->gr_name, MAXLOGNAME - 1);
+ cp->name[MAXLOGNAME - 1] = '\0';
} else {
cp->found = 0;
- (void)snprintf(cp->name, UT_NAMESIZE, "%u", gid);
+ (void)snprintf(cp->name, MAXLOGNAME - 1, "%u", gid);
if (nogroup)
return (NULL);
}
diff --git a/lib/libc/posix1e/acl_to_text.c b/lib/libc/posix1e/acl_to_text.c
index 79a950a..e5fd1f7 100644
--- a/lib/libc/posix1e/acl_to_text.c
+++ b/lib/libc/posix1e/acl_to_text.c
@@ -39,7 +39,6 @@ __FBSDID("$FreeBSD$");
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <utmp.h>
#include "acl_support.h"
@@ -58,7 +57,7 @@ _posix1e_acl_to_text(acl_t acl, ssize_t *len_p, int flags)
{
struct acl *acl_int;
char *buf, *tmpbuf;
- char name_buf[UT_NAMESIZE+1];
+ char name_buf[MAXLOGNAME];
char perm_buf[_POSIX1E_ACL_STRING_PERM_MAXSIZE+1],
effective_perm_buf[_POSIX1E_ACL_STRING_PERM_MAXSIZE+1];
int i, error, len;
@@ -103,7 +102,7 @@ _posix1e_acl_to_text(acl_t acl, ssize_t *len_p, int flags)
goto error_label;
error = _posix1e_acl_id_to_name(ae_tag, ae_id,
- UT_NAMESIZE+1, name_buf, flags);
+ MAXLOGNAME, name_buf, flags);
if (error)
goto error_label;
@@ -163,7 +162,7 @@ _posix1e_acl_to_text(acl_t acl, ssize_t *len_p, int flags)
goto error_label;
error = _posix1e_acl_id_to_name(ae_tag, ae_id,
- UT_NAMESIZE+1, name_buf, flags);
+ MAXLOGNAME, name_buf, flags);
if (error)
goto error_label;
OpenPOWER on IntegriCloud