[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