[Pythonmac-SIG] "Bus error" when using Authorization

Vincent Bernat bernat at free.fr
Sun Aug 8 21:48:10 CEST 2004


Hello !

I am trying to use the Authorization class with python to check that
the user owns some rights. Here is a snippet of code :

>>> from Authorization import *
>>> auth = Authorization()
>>> auth.copyRights(rights=(("org.crans.wifi.daemons.restart", None,
0),), flags=(kAuthorizationFlagDefaults,
kAuthorisationFlagExtendRights, kAuthorizationFlagInteractionAllowed,
kAuthorizationFlagPreAuthorize))

And I get "bus error".

I have tried inside gdb :

guybrush% gdb python
GNU gdb 5.3-20030128 (Apple version gdb-309) (Thu Dec  4 15:41:30 GMT 2003)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "powerpc-apple-darwin".
Reading symbols for shared libraries ..... done
(gdb) run
Starting program: /usr/bin/python 
Reading symbols for shared libraries .................. done
Python 2.3 (#1, Sep 13 2003, 00:49:11) 
[GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from Authorization import *
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
>>> auth = Authorization()
>>> auth.copyRights(rights=(("org.crans.cranswifi.daemons.restart", None, 0),), flags=(kAuthorizationFlagDefaults, kAuthorizationFlagExtendRights, kAuthorizationFlagInteractionAllowed, kAuthorizationFlagPreAuthorize))

Program received signal EXC_BAD_ACCESS, Could not access memory.
0x90006e40 in strlen ()
(gdb) bt
#0  0x90006e40 in strlen ()
#1  0x92249b38 in char* Security::DataWalkers::walk<Security::DataWalkers::SizeWalker>(Security::DataWalkers::SizeWalker&, char*&) ()
#2  0x9225b648 in void Security::DataWalkers::walk<Security::DataWalkers::SizeWalker>(Security::DataWalkers::SizeWalker&, AuthorizationItem&) ()
#3  0x9225b350 in AuthorizationItemSet* Security::DataWalkers::walk<Security::DataWalkers::SizeWalker>(Security::DataWalkers::SizeWalker&, AuthorizationItemSet*&) ()
#4  0x9225abec in unsigned long Security::DataWalkers::size<AuthorizationItemSet const*>(AuthorizationItemSet const*) ()
#5  0x920c4c30 in Security::SecurityServer::ClientSession::authCopyRights(Security::SecurityServer::AuthorizationBlob const&, AuthorizationItemSet const*, AuthorizationItemSet const*, unsigned long, AuthorizationItemSet**) ()
#6  0x920c4b40 in AuthorizationCopyRights ()
#7  0x000dd5dc in __pyx_f_14_Authorization_18_AuthorizationBase_copyRights (__pyx_v_self=0x53960, __pyx_args=0x0, __pyx_kwds=0xfefefeff) at src/_Authorization.c:1011
#8  0x95f4a8d0 in PyObject_Call ()
#9  0x95fa9ba8 in PyEval_GetFuncDesc ()
#10 0x95fa9598 in PyEval_GetFuncDesc ()
#11 0x95fa6c64 in PyEval_EvalCode ()
#12 0x95fa7e30 in PyEval_EvalCodeEx ()
#13 0x95fa4734 in PyEval_EvalCode ()
#14 0x95fc85f0 in PyRun_FileExFlags ()
#15 0x95fc7354 in PyRun_InteractiveOneFlags ()
#16 0x95fc713c in PyRun_InteractiveLoopFlags ()
#17 0x95fc6fd4 in PyRun_AnyFileExFlags ()
#18 0x95fd1ec0 in Py_Main ()
#19 0x00003c78 in start ()
#20 0x00003aec in start ()
(gdb) 

Any idea ?
-- 
BOFH excuse #354:
Chewing gum on /dev/sd3c



More information about the Pythonmac-SIG mailing list