[CalendarServer-changes] [3004] PyKerberos/trunk/src/kerberos.c

source_changes at macosforge.org source_changes at macosforge.org
Wed Sep 17 02:38:55 PDT 2008


Revision: 3004
          http://trac.macosforge.org/projects/calendarserver/changeset/3004
Author:   agx at sigxcpu.org
Date:     2008-09-17 02:38:55 -0700 (Wed, 17 Sep 2008)
Log Message:
-----------
all invocations of PyCObject_Check(pystate) should return a meaningful exception

without this we see:
 SystemError: error return without exception set
which is not very helpful

Fixes #281

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

Modified: PyKerberos/trunk/src/kerberos.c
===================================================================
--- PyKerberos/trunk/src/kerberos.c	2008-09-16 22:45:29 UTC (rev 3003)
+++ PyKerberos/trunk/src/kerberos.c	2008-09-17 09:38:55 UTC (rev 3004)
@@ -110,8 +110,13 @@
     PyObject *pystate;
     int result = 0;
     
-    if (!PyArg_ParseTuple(args, "O", &pystate) || !PyCObject_Check(pystate))
+    if (!PyArg_ParseTuple(args, "O", &pystate))
         return NULL;
+
+    if (!PyCObject_Check(pystate)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a context object");
+        return NULL;
+    }
     
     state = (gss_client_state *)PyCObject_AsVoidPtr(pystate);
     if (state != NULL)
@@ -132,8 +137,13 @@
     char *challenge;
     int result = 0;
     
-    if (!PyArg_ParseTuple(args, "Os", &pystate, &challenge) || !PyCObject_Check(pystate))
+    if (!PyArg_ParseTuple(args, "Os", &pystate, &challenge))
         return NULL;
+
+    if (!PyCObject_Check(pystate)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a context object");
+        return NULL;
+    }
     
     state = (gss_client_state *)PyCObject_AsVoidPtr(pystate);
     if (state == NULL)
@@ -151,8 +161,13 @@
     gss_client_state *state;
     PyObject *pystate;
     
-    if (!PyArg_ParseTuple(args, "O", &pystate) || !PyCObject_Check(pystate))
+    if (!PyArg_ParseTuple(args, "O", &pystate))
         return NULL;
+
+    if (!PyCObject_Check(pystate)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a context object");
+        return NULL;
+    }
     
     state = (gss_client_state *)PyCObject_AsVoidPtr(pystate);
     if (state == NULL)
@@ -166,8 +181,13 @@
     gss_client_state *state;
     PyObject *pystate;
     
-    if (!PyArg_ParseTuple(args, "O", &pystate) || !PyCObject_Check(pystate))
+    if (!PyArg_ParseTuple(args, "O", &pystate))
         return NULL;
+
+    if (!PyCObject_Check(pystate)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a context object");
+        return NULL;
+    }
     
     state = (gss_client_state *)PyCObject_AsVoidPtr(pystate);
     if (state == NULL)
@@ -183,9 +203,14 @@
 	char *challenge;
 	int result = 0;
 
-	if (!PyArg_ParseTuple(args, "Os", &pystate, &challenge) || !PyCObject_Check(pystate))
+	if (!PyArg_ParseTuple(args, "Os", &pystate, &challenge))
 		return NULL;
 
+	if (!PyCObject_Check(pystate)) {
+		PyErr_SetString(PyExc_TypeError, "Expected a context object");
+		return NULL;
+	}
+
 	state = (gss_client_state *)PyCObject_AsVoidPtr(pystate);
 	if (state == NULL)
 		return NULL;
@@ -204,9 +229,14 @@
 	char *challenge, *user = NULL;
 	int result = 0;
 
-	if (!PyArg_ParseTuple(args, "Os|z", &pystate, &challenge, &user) || !PyCObject_Check(pystate))
+	if (!PyArg_ParseTuple(args, "Os|z", &pystate, &challenge, &user))
 		return NULL;
 
+	if (!PyCObject_Check(pystate)) {
+		PyErr_SetString(PyExc_TypeError, "Expected a context object");
+		return NULL;
+	}
+
 	state = (gss_client_state *)PyCObject_AsVoidPtr(pystate);
 	if (state == NULL)
 		return NULL;
@@ -244,8 +274,13 @@
     PyObject *pystate;
     int result = 0;
     
-    if (!PyArg_ParseTuple(args, "O", &pystate) || !PyCObject_Check(pystate))
+    if (!PyArg_ParseTuple(args, "O", &pystate))
         return NULL;
+
+    if (!PyCObject_Check(pystate)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a context object");
+        return NULL;
+    }
     
     state = (gss_server_state *)PyCObject_AsVoidPtr(pystate);
     if (state != NULL)
@@ -266,8 +301,13 @@
     char *challenge;
     int result = 0;
     
-    if (!PyArg_ParseTuple(args, "Os", &pystate, &challenge) || !PyCObject_Check(pystate))
+    if (!PyArg_ParseTuple(args, "Os", &pystate, &challenge))
         return NULL;
+
+    if (!PyCObject_Check(pystate)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a context object");
+        return NULL;
+    }
     
     state = (gss_server_state *)PyCObject_AsVoidPtr(pystate);
     if (state == NULL)
@@ -285,8 +325,13 @@
     gss_server_state *state;
     PyObject *pystate;
     
-    if (!PyArg_ParseTuple(args, "O", &pystate) || !PyCObject_Check(pystate))
+    if (!PyArg_ParseTuple(args, "O", &pystate))
         return NULL;
+
+    if (!PyCObject_Check(pystate)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a context object");
+        return NULL;
+    }
     
     state = (gss_server_state *)PyCObject_AsVoidPtr(pystate);
     if (state == NULL)
@@ -300,8 +345,13 @@
     gss_server_state *state;
     PyObject *pystate;
     
-    if (!PyArg_ParseTuple(args, "O", &pystate) || !PyCObject_Check(pystate))
+    if (!PyArg_ParseTuple(args, "O", &pystate))
         return NULL;
+
+    if (!PyCObject_Check(pystate)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a context object");
+        return NULL;
+    }
     
     state = (gss_server_state *)PyCObject_AsVoidPtr(pystate);
     if (state == NULL)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080917/bd32fce5/attachment.html 


More information about the calendarserver-changes mailing list