[CalendarServer-changes] [2721] PyKerberos/trunk/src

source_changes at macosforge.org source_changes at macosforge.org
Thu Jul 17 18:08:39 PDT 2008


Revision: 2721
          http://trac.macosforge.org/projects/calendarserver/changeset/2721
Author:   wsanchez at apple.com
Date:     2008-07-17 18:08:38 -0700 (Thu, 17 Jul 2008)
Log Message:
-----------
make authGSSWrap more generic
patch from Ticket #283 by jelmer at samba.org and agx at sigxcpu.org.

Modified Paths:
--------------
    PyKerberos/trunk/src/kerberos.c
    PyKerberos/trunk/src/kerberosgss.c

Modified: PyKerberos/trunk/src/kerberos.c
===================================================================
--- PyKerberos/trunk/src/kerberos.c	2008-07-18 00:57:08 UTC (rev 2720)
+++ PyKerberos/trunk/src/kerberos.c	2008-07-18 01:08:38 UTC (rev 2721)
@@ -201,10 +201,10 @@
 {
 	gss_client_state *state;
 	PyObject *pystate;
-	char *challenge, *user;
+	char *challenge, *user = NULL;
 	int result = 0;
 
-	if (!PyArg_ParseTuple(args, "Oss", &pystate, &challenge, &user) || !PyCObject_Check(pystate))
+	if (!PyArg_ParseTuple(args, "Os|z", &pystate, &challenge, &user) || !PyCObject_Check(pystate))
 		return NULL;
 
 	state = (gss_client_state *)PyCObject_AsVoidPtr(pystate);

Modified: PyKerberos/trunk/src/kerberosgss.c
===================================================================
--- PyKerberos/trunk/src/kerberosgss.c	2008-07-18 00:57:08 UTC (rev 2720)
+++ PyKerberos/trunk/src/kerberosgss.c	2008-07-18 01:08:38 UTC (rev 2721)
@@ -333,27 +333,29 @@
 		input_token.length = len;
 	}
 
-	// get bufsize
-	server_conf_flags = ((char*) input_token.value)[0];
-	((char*) input_token.value)[0] = 0;
-	buf_size = ntohl(*((long *) input_token.value));
-	free(input_token.value);
+	if (user) {
+		// get bufsize
+		server_conf_flags = ((char*) input_token.value)[0];
+		((char*) input_token.value)[0] = 0;
+		buf_size = ntohl(*((long *) input_token.value));
+		free(input_token.value);
 #ifdef PRINTFS
-	printf("User: %s, %c%c%c\n", user,
-		server_conf_flags & GSS_AUTH_P_NONE      ? 'N' : '-',
-		server_conf_flags & GSS_AUTH_P_INTEGRITY ? 'I' : '-',
-		server_conf_flags & GSS_AUTH_P_PRIVACY   ? 'P' : '-');
-	printf("Maximum GSS token size is %ld\n", buf_size);
+		printf("User: %s, %c%c%c\n", user,
+			server_conf_flags & GSS_AUTH_P_NONE      ? 'N' : '-',
+			server_conf_flags & GSS_AUTH_P_INTEGRITY ? 'I' : '-',
+			server_conf_flags & GSS_AUTH_P_PRIVACY   ? 'P' : '-');
+		printf("Maximum GSS token size is %ld\n", buf_size);
 #endif
 
-	// agree to terms (hack!)
-	buf_size = htonl(buf_size); // not relevant without integrity/privacy
-	memcpy(buf, &buf_size, 4);
-	buf[0] = GSS_AUTH_P_NONE;
-	// server decides if principal can log in as user
-	strncpy(buf + 4, user, sizeof(buf) - 4);
-	input_token.value = buf;
-	input_token.length = 4 + strlen(user) + 1;
+		// agree to terms (hack!)
+		buf_size = htonl(buf_size); // not relevant without integrity/privacy
+		memcpy(buf, &buf_size, 4);
+		buf[0] = GSS_AUTH_P_NONE;
+		// server decides if principal can log in as user
+		strncpy(buf + 4, user, sizeof(buf) - 4);
+		input_token.value = buf;
+		input_token.length = 4 + strlen(user) + 1;
+	}
 
 	// Do GSSAPI wrap
 	maj_stat = gss_wrap(&min_stat,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080717/be707a49/attachment-0001.html 


More information about the calendarserver-changes mailing list