From: David H. <dh...@vt...> - 2005-03-02 20:28:44
|
Deepak, Thank you for the patch and the explanation--I was working my way towards that, but it would have taken a bit longer to poinpoint it... ;) The patch works perfectly and my SASL EXTERNAL bind works as expected. Thanks again for the help. dave On Wednesday 02 March 2005 15:11, Deepak Giridharagopal wrote: > Hi, Dave! > > I've reproduced your bug, and I've attached a patch that fixes the > problem. It might interest you to know that this bug doesn't affect more > recent versions of Python, for what that's worth. :) > > The long answer: > > On Wed, 2005-03-02 at 12:30 -0500, David Hawes wrote: > > Traceback (most recent call last): > > File "sasl_bind.py", line 69, in ? > > l.sasl_interactive_bind_s("", sasl_auth) > > File "/usr/lib/python2.1/site-packages/ldap/ldapobject.py", line 196, > > in sasl_interactive_bind_s return > > self._ldap_call(self._l.sasl_interactive_bind_s,who,auth,serverctrls,clie > >ntctrls ,sasl_flags) > > File "/usr/lib/python2.1/site-packages/ldap/ldapobject.py", line > > 94, in _ldap_call > > result = func(*args,**kwargs) > > TypeError: argument 5 must be impossible<bad format char>, not int > > Eek! This looks like a bug in the C code. The function that throws this > error is PyArg_ParseTuple, a C function bundled with Python that takes > Python objects and converts them to vanilla C-types. > > The offending bit looks to be lines 648-649 in LDAPObject.c: > > if (!PyArg_ParseTuple(args, "sOOOI", &who, &SASLObject, &serverctrls, > &clientctrls, &sasl_flags )) > return NULL; > > The 'sasl_flags' variable is declared as an unsigned int, but it looks > like we're trying to convert it using the "I" flag, which is meant to > convert longs. Replacing that "I" with "i" tells Python to convert that > argument to an int (rather than a long), and it seems to do the trick. > > More info on these arcane conversion flags (for the curious): > http://docs.python.org/api/arg-parsing.html > > Don't you just love C programming? :) > > The fix makes Python 2.1.3 work again, and the fix doesn't appear to > break anything for more recent versions of Python (which, as I said, > don't seem to suffer from the problem). > > Can you try the patch and let me know if it fixes things for you? > Thanks, Dave! > > Cheers! > deepak > > -- > Deepak Giridharagopal > Applied Research Laboratories > University of Texas at Austin |