[Bug 247102] getlogin_r(): Sort of a typo: int is actually a size_t
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Jun 9 16:56:16 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247102
--- Comment #3 from Conrad Meyer <cem at freebsd.org> ---
Something like this:
--- 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;
@@ -423,6 +422,7 @@ FBSD_1.5 {
};
FBSD_1.6 {
+ getlogin_r;
memalign;
sigandset;
sigisemptyset;
--- 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);
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-standards
mailing list