diff options
-rw-r--r-- | include/unistd.h | 2 | ||||
-rw-r--r-- | lib/libc/gen/Symbol.map | 2 | ||||
-rw-r--r-- | lib/libc/gen/getlogin.c | 12 | ||||
-rw-r--r-- | lib/libc/sys/getlogin.2 | 4 |
4 files changed, 15 insertions, 5 deletions
diff --git a/include/unistd.h b/include/unistd.h index 02df2515eaaa6..9fa9bebbc4c05 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -399,7 +399,7 @@ int ftruncate(int, off_t); #endif #if __POSIX_VISIBLE >= 199506 -int getlogin_r(char *, int); +int getlogin_r(char *, size_t); #endif /* 1003.1-2001 */ diff --git a/lib/libc/gen/Symbol.map b/lib/libc/gen/Symbol.map index e17d74d1a151f..718b95e6f82d8 100644 --- a/lib/libc/gen/Symbol.map +++ b/lib/libc/gen/Symbol.map @@ -156,7 +156,6 @@ FBSD_1.0 { gethostname; getloadavg; getlogin; - getlogin_r; setnetgrent; getnetgrent; endnetgrent; @@ -422,6 +421,7 @@ FBSD_1.5 { }; FBSD_1.6 { + getlogin_r; memalign; scandir_b; sigandset; diff --git a/lib/libc/gen/getlogin.c b/lib/libc/gen/getlogin.c index 3a07ca36bca72..a8bc2fd0688f0 100644 --- a/lib/libc/gen/getlogin.c +++ b/lib/libc/gen/getlogin.c @@ -58,7 +58,7 @@ getlogin(void) } int -getlogin_r(char *logname, int namelen) +getlogin_r(char *logname, size_t namelen) { char tmpname[MAXLOGNAME]; int len; @@ -75,3 +75,13 @@ getlogin_r(char *logname, int namelen) strlcpy(logname, tmpname, len); return (0); } + +/* FreeBSD 12 and earlier compat. */ +int +__getlogin_r_fbsd12(char *logname, int namelen) +{ + if (namelen < 1) + return (ERANGE); + return (getlogin_r(logname, namelen)); +} +__sym_compat(getlogin_r, __getlogin_r_fbsd12, FBSD_1.0); diff --git a/lib/libc/sys/getlogin.2 b/lib/libc/sys/getlogin.2 index a0c1dd82024b9..2d82aea92aa53 100644 --- a/lib/libc/sys/getlogin.2 +++ b/lib/libc/sys/getlogin.2 @@ -28,7 +28,7 @@ .\" @(#)getlogin.2 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd June 9, 1993 +.Dd September 9, 2020 .Dt GETLOGIN 2 .Os .Sh NAME @@ -44,7 +44,7 @@ .Fn getlogin void .In sys/param.h .Ft int -.Fn getlogin_r "char *name" "int len" +.Fn getlogin_r "char *name" "size_t len" .Ft int .Fn setlogin "const char *name" .Sh DESCRIPTION |