Shared object problem under OpenBSD - Re: [Dovecot] Pid file?

Clive Jones Clive.Jones+nospam+procontrol.fi at meridian.co.uk
Thu Nov 27 18:06:30 EET 2003


Timo wrote:
> Well, I thought you would have looked at 0.99.10.4 release announcement
> mail:

Ah, oops. I figured I wasn't going to bother with any upgrades until the
bug was fixed, and forgot you might only mention the bug fix in the
release notes. Sorry!

I've now built the new version, and will try deploying this evening.


Incidentally, building a new version of dovecot has reminded me of a
problem I encountered building under OpenBSD (version 3.2). When
using dlsym() to find C symbols in shared objects, the symbol name
must be prefixed with an underscore. For the time being, I've fixed
the issue with the following shim in src/auth/auth-module.c :
  97a98
  >       char buf[64];
  101c102,106
  <       ret = dlsym(module->handle, name);
  ---
  >       buf[0]='_';
  >       strncpy(buf+1,name,62);
  >       buf[63]='\0';
  > 
  >       ret = dlsym(module->handle, buf);

Without that fix, using modules for auth_userdb or auth_passdb won't
work.

I'm sure there must be some elegant way to deal with this portability
issue, but for the moment it eludes me. (-8

Regards,

--Clive.




More information about the dovecot mailing list