Hi,

OpenCT has been broken by the recent commit of SO_PEERCRED:

socket.c: In function `ct_socket_getcreds':
socket.c:298: error: storage size of `creds' isn't known

This is because we use "struct sockpeercred" instead of "struct ucred"
to return the credentials in. The following patch fixes it. Ok?

Index: Makefile
===================================================================
RCS file: /cvs/ports/security/openct/Makefile,v
retrieving revision 1.12
diff -u -p -r1.12 Makefile
--- Makefile    13 Mar 2009 21:33:43 -0000      1.12
+++ Makefile    1 Jul 2010 01:55:45 -0000
@@ -3,7 +3,7 @@
 COMMENT=       drivers for several smart card readers
 
 DISTNAME=      openct-0.6.15
-PKGNAME=        ${DISTNAME}p1
+PKGNAME=        ${DISTNAME}p2
 CATEGORIES=    security
 SHARED_LIBS=   openct  1.1
 
Index: patches/patch-configure
===================================================================
RCS file: /cvs/ports/security/openct/patches/patch-configure,v
retrieving revision 1.1
diff -u -p -r1.1 patch-configure
--- patches/patch-configure     13 Mar 2009 21:33:43 -0000      1.1
+++ patches/patch-configure     1 Jul 2010 01:55:45 -0000
@@ -1,7 +1,7 @@
 $OpenBSD: patch-configure,v 1.1 2009/03/13 21:33:43 jasper Exp $
---- configure.orig     Mon Mar  2 08:16:29 2009
-+++ configure  Mon Mar  2 08:16:53 2009
-@@ -23258,7 +23258,7 @@
+--- configure.orig     Thu Jul 31 23:03:41 2008
++++ configure  Thu Jul  1 11:48:12 2010
+@@ -23258,7 +23258,7 @@ cat >>confdefs.h <<_ACEOF
  #define OPENCT_MODULES_PATH "${ifddir}"
  _ACEOF
  
Index: patches/patch-src_ct_socket_c
===================================================================
RCS file: patches/patch-src_ct_socket_c
diff -N patches/patch-src_ct_socket_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_ct_socket_c       1 Jul 2010 01:55:45 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- src/ct/socket.c.orig       Thu Jul  1 11:51:42 2010
++++ src/ct/socket.c    Thu Jul  1 11:52:26 2010
+@@ -295,7 +295,7 @@ ct_socket_t *ct_socket_accept(ct_socket_t * sock)
+ static int ct_socket_getcreds(ct_socket_t * sock)
+ {
+ #ifdef SO_PEERCRED
+-      struct ucred creds;
++      struct sockpeercred creds;
+       socklen_t len;
+ 
+       len = sizeof(creds);

Reply via email to