Re: list mechs bug in cyrus-sasl 2.1.22 and memory leak

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



--On Thursday, January 24, 2008 10:32 AM -0800 Quanah Gibson-Mount <quanah@xxxxxxxxxx> wrote:

The problem does not occur with the Mac system sasl library.  It only
occurs with stock builds of cyrus-sasl.  I.e., Apple's fixed the issue
apparently, but their source is very heavily modified, I've just begun
looking into it.  They also are using the rather old 2.1.18, and I need
2.1.22. ;) The same issues with a stock 2.1.18 build as well.

This appears to be a problem in the way that the plugins are loaded with add_plugin.

My cyrus-sasl/lib/sasl2/ directory had:

build-mac-x86:/opt/zimbra/cyrus-sasl/lib/sasl2 root# ls
libanonymous.2.0.22.so libcrammd5.2.0.22.so libdigestmd5.2.0.22.so libgssapiv2.2.0.22.so liblogin.2.0.22.so libotp.2.0.22.so libplain.2.0.22.so libanonymous.2.so libcrammd5.2.so libdigestmd5.2.so libgssapiv2.2.so liblogin.2.so libotp.2.so libplain.2.so libanonymous.la libcrammd5.la libdigestmd5.la libgssapiv2.la liblogin.la libotp.la libplain.la libanonymous.so libcrammd5.so libdigestmd5.so libgssapiv2.so liblogin.so libotp.so libplain.so


So I then did:

build-mac-x86:/opt/zimbra/cyrus-sasl/lib/sasl2 root# rm libplain.so
build-mac-x86:/opt/zimbra/cyrus-sasl/lib/sasl2 root# rm libplain.2.so


Then when I run the script, I get:

[EXTERNAL,ANONYMOUS,ANONYMOUS,ANONYMOUS,CRAM-MD5,CRAM-MD5,CRAM-MD5,DIGEST-MD
5,DIGEST-MD5,DIGEST-MD5,GSSAPI,GSSAPI,GSSAPI,LOGIN,LOGIN,LOGIN,OTP,OTP,OTP,PLAIN]


See how plain is only listed *once* now.

So apparently SASL is treating every *.so file as a plugin when on a Mac, rather than ignoring the symlinks.

In fact, if I remove all the symlinks, I get:

Testing sasl_listmech()...
Client sasl_client_add_plugin: Added mech EXTERNAL
Client sasl_client_add_plugin: Added mech ANONYMOUS
Client sasl_client_add_plugin: Added mech CRAM-MD5
Client sasl_client_add_plugin: Added mech DIGEST-MD5
Client sasl_client_add_plugin: Added mech GSSAPI
Client sasl_client_add_plugin: Added mech LOGIN
Client sasl_client_add_plugin: Added mech OTP
Client sasl_client_add_plugin: Added mech PLAIN
Global mechanisms list:
[EXTERNAL,ANONYMOUS,CRAM-MD5,DIGEST-MD5,GSSAPI,LOGIN,OTP,PLAIN]
Client mechlist:
[PLAIN,OTP,LOGIN,GSSAPI,DIGEST-MD5,CRAM-MD5,ANONYMOUS,EXTERNAL]
We have the following mechs:
[PLAIN,LOGIN,GSSAPI,DIGEST-MD5,CRAM-MD5,ANONYMOUS,EXTERNAL]
 All memory accounted for!
Testing sasl_listmech()... ok
All tests seemed to go ok (i.e. we didn't crash)

Yeah, no memory leak. So this is definitely a problem of determining symlink vs actual file in the SASL code for macintosh.

--Quanah


--

Quanah Gibson-Mount
Principal Software Engineer
Zimbra, Inc
--------------------
Zimbra ::  the leader in open source messaging and collaboration

[Index of Archives]     [Info Cyrus]     [Squirrel Mail]     [Linux Media]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux