From nobody@FreeBSD.org  Tue Feb 19 14:38:52 2013
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	by hub.freebsd.org (Postfix) with ESMTP id BE076503
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 19 Feb 2013 14:38:52 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 9F91C9E7
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 19 Feb 2013 14:38:52 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.5/8.14.5) with ESMTP id r1JEcpXX083619
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 19 Feb 2013 14:38:51 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.5/8.14.5/Submit) id r1JEcpWK083618;
	Tue, 19 Feb 2013 14:38:51 GMT
	(envelope-from nobody)
Message-Id: <201302191438.r1JEcpWK083618@red.freebsd.org>
Date: Tue, 19 Feb 2013 14:38:51 GMT
From: Constantin Stefanov <cstef@parallel.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [PATCH] security/pam_ssh_agent_auth breaks PAM
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         176264
>Category:       ports
>Synopsis:       [PATCH] security/pam_ssh_agent_auth breaks PAM
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    miwi
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Feb 19 14:40:00 UTC 2013
>Closed-Date:    Tue Feb 19 16:05:28 UTC 2013
>Last-Modified:  Tue Feb 19 16:10:00 UTC 2013
>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:
Responsible-Changed-From-To: freebsd-ports-bugs->miwi 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Tue Feb 19 14:40:08 UTC 2013 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=176264 
State-Changed-From-To: open->closed 
State-Changed-By: miwi 
State-Changed-When: Tue Feb 19 16:05:27 UTC 2013 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=176264 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/176264: commit references a PR
Date: Tue, 19 Feb 2013 16:05:32 +0000 (UTC)

 Author: miwi
 Date: Tue Feb 19 16:05:18 2013
 New Revision: 312579
 URL: http://svnweb.freebsd.org/changeset/ports/312579
 
 Log:
   - Unbreak PAM initialize
   - While here trim header
   
   PR:		176264
   Submitted by:	Constantin Stefanov <cstef@parallel.ru>
 
 Added:
   head/security/pam_ssh_agent_auth/files/patch-openbsd   (contents, props changed)
 Modified:
   head/security/pam_ssh_agent_auth/Makefile
 
 Modified: head/security/pam_ssh_agent_auth/Makefile
 ==============================================================================
 --- head/security/pam_ssh_agent_auth/Makefile	Tue Feb 19 15:48:36 2013	(r312578)
 +++ head/security/pam_ssh_agent_auth/Makefile	Tue Feb 19 16:05:18 2013	(r312579)
 @@ -7,6 +7,7 @@
  
  PORTNAME=	pam_ssh_agent_auth
  PORTVERSION=	0.9.4
 +PORTREVISION=	1
  CATEGORIES=	security
  MASTER_SITES=	SF/pamsshagentauth/${PORTNAME}/v${PORTVERSION}/
  
 
 Added: head/security/pam_ssh_agent_auth/files/patch-openbsd
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/security/pam_ssh_agent_auth/files/patch-openbsd	Tue Feb 19 16:05:18 2013	(r312579)
 @@ -0,0 +1,85 @@
 +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 */
 +
 +
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 
>Unformatted:
