Date: Tue, 19 Feb 2013 14:38:51 GMT From: Constantin Stefanov <cstef@parallel.ru> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/176264: [PATCH] security/pam_ssh_agent_auth breaks PAM Message-ID: <201302191438.r1JEcpWK083618@red.freebsd.org> Resent-Message-ID: <201302191440.r1JEe0pH080975@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 176264 >Category: ports >Synopsis: [PATCH] security/pam_ssh_agent_auth breaks PAM >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Feb 19 14:40:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Constantin Stefanov >Release: 9.1-RELEASE >Organization: RCC MSU >Environment: FreeBSD hosting.srcc.msu.ru 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: After upgrading to pam_ssh_agent_auth-0.9.4 (security/pam_ssh_agent_auth) any program using it as PAM module (sudo in my case) fails to initialize PAM. The cause is that pam_ssh_user_agent.so want some external symbols which are not defined anywhere. These symbols like pamsshagentauth___b64_ntop should be defined and reference correct variant, but that does not happen. The attached patch (which should be placed into /usr/ports/security/pam_ssh_agent_auth/files fixes the problem, defining necessary functions. >How-To-Repeat: >Fix: Patch attached with submission follows: diff -ur openbsd-compat/base64.h openbsd-compat/base64.h --- openbsd-compat/base64.h 2013-02-19 17:52:53.000000000 +0400 +++ openbsd-compat/base64.h 2013-02-19 17:49:44.000000000 +0400 @@ -54,6 +54,7 @@ # endif /* !HAVE_B64_NTOP */ # define pamsshagentauth___b64_ntop(a,b,c,d) b64_ntop(a,b,c,d) #endif /* HAVE___B64_NTOP */ +#define pamsshagentauth___b64_ntop(a,b,c,d) __b64_ntop(a,b,c,d) #ifndef HAVE___B64_PTON # ifndef HAVE_B64_PTON @@ -61,5 +62,6 @@ # endif /* !HAVE_B64_PTON */ # define pamsshagentauth___b64_pton(a,b,c) b64_pton(a,b,c) #endif /* HAVE___B64_PTON */ +#define pamsshagentauth___b64_pton(a,b,c) __b64_pton(a,b,c) #endif /* _BSD_BASE64_H */ diff -ur openbsd-compat/bsd-arc4random.c openbsd-compat/bsd-arc4random.c --- openbsd-compat/bsd-arc4random.c 2012-06-28 05:47:49.000000000 +0400 +++ openbsd-compat/bsd-arc4random.c 2013-02-19 18:02:38.000000000 +0400 @@ -82,4 +82,17 @@ rc4_ready = REKEY_BYTES; } +#else /* HAVE_ARC4RANDOM */ + +unsigned int +pamsshagentauth_arc4random(void) +{ + return arc4random(); +} + +void +pamsshagentauth_arc4random_stir(void) +{ + arc4random_stir(); +} #endif /* !HAVE_ARC4RANDOM */ diff -ur openbsd-compat/strlcat.c openbsd-compat/strlcat.c --- openbsd-compat/strlcat.c 2012-06-28 05:47:49.000000000 +0400 +++ openbsd-compat/strlcat.c 2013-02-19 18:03:34.000000000 +0400 @@ -59,4 +59,10 @@ return(dlen + (s - src)); /* count does not include NUL */ } +#else /* HAVE_STRLCAT */ +size_t +pamsshagentauth_strlcat(char *dst, const char *src, size_t siz) +{ + return strlcat(dst, src, siz); +} #endif /* !HAVE_STRLCAT */ diff -ur openbsd-compat/strlcpy.c openbsd-compat/strlcpy.c --- openbsd-compat/strlcpy.c 2012-06-28 05:47:49.000000000 +0400 +++ openbsd-compat/strlcpy.c 2013-02-19 18:04:18.000000000 +0400 @@ -55,4 +55,10 @@ return(s - src - 1); /* count does not include NUL */ } +#else /* HAVE_STRLCPY */ +size_t +pamsshagentauth_strlcpy(char *dst, const char *src, size_t siz) +{ + return strlcpy(dst, src, siz); +} #endif /* !HAVE_STRLCPY */ diff -ur openbsd-compat/strtonum.c openbsd-compat/strtonum.c --- openbsd-compat/strtonum.c 2012-06-28 05:47:49.000000000 +0400 +++ openbsd-compat/strtonum.c 2013-02-19 18:05:16.000000000 +0400 @@ -69,4 +69,11 @@ return (ll); } -#endif /* HAVE_STRTONUM */ +#else /* HAVE_STRTONUM */ +long long +pamsshagentauth_strtonum(const char *numstr, long long minval, long long maxval, + const char **errstrp) +{ + return strtonum(numstr, minval, maxval, errstrp); +} +#endif /* i!HAVE_STRTONUM */ >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302191438.r1JEcpWK083618>