让python-ldap与python25以及CentOS 4.x和谐共处
最近写的一个东东要用python25和python-ldap,但是使用的那台主机是python23、ldap2.2.x和python-ldap2.0.1。安装了一个python25,python-ldap是2.3.8,编译失败,openldap2.2太老了,python-ldap2.3.8不向下兼容了。
那我就用python-ldap2.0.x,这个版本已经不提供下载了,从sf.net的cvs上拉了一份2.0.11的版本,这次倒是编过去了。用的时候出问题了
*** glibc detected *** free(): invalid pointer: 0xb7f60728 ***
Aborted
查来查去有三个文章有说这种情况
- problem using python-ldap under fcgi
- python-cdb double free
- 解决之道:python-cdb 0.32 (-5.2ubuntu2) with Python 2.5 causes double-free corruption crash on dealloc
主要原因是PyMem\_DEL
的调用已经不被推荐了,应该用PyObject\_Del
。所以要对两个C文件做一些改动。
sed -i.orig 's/PyMem_DEL/PyObject_Del/g' Modules/LDAPObject.c
sed -i.orig 's/PyMem_DEL/PyObject_Del/g' Modules/ldapcontrol.c
然后再build,install就OK了
Last modified on 2009-06-03