Tuesday, September 1, 2020

[389-users] Re: Plugin-in Guide for 1.4.0

Hi William,

> Reading this trace, it looks like you are missing debug symbols or devel information. Honestly, I'm not sure how to get this on debian, maybe "pkgname-dbgsym" aka 389-ds-dbgsym or similar needs to be installed?

Debian way is to add an extra repository, which contains all -dbgsym
packages. It is described here: https://wiki.debian.org/HowToGetABacktrace

The problem was in the declaration of variable method:

static int do_pre_bind(Slapi_PBlock *pb, char* errmsg)
{
static const char* attributes[] = {"cn", NULL};

plugin_config_t* conf;
int rc, method;
...
conf = &s_conf;
...
if (slapi_pblock_get(pb, SLAPI_BIND_TARGET, &dn) != 0
|| slapi_pblock_get(pb, SLAPI_BIND_METHOD, &method) != 0
...

Calling 'slapi_pblock_get(pb, SLAPI_BIND_METHOD, &method)' causes
overwrite of conf.

In
https://access.redhat.com/documentation/en-us/red_hat_directory_server/10/html-single/plug-in_guide/index#Plugin_Programming_Guide-Processing_an_LDAP_Bind_Operation-Getting_and_Setting_Parameters_for_the_Bind_Operation
is return of 'slapi_pblock_get(pb, SLAPI_BIND_METHOD, &method)' still 'int'

But in the source:
https://pagure.io/389-ds-base/blob/master/f/ldap/servers/slapd/pblock.c#_1578

is used ber_tag_t

After I changed the declaration:
ber_tag_t method;

Plugin started work. I need to deeply test it, but it looks good.

I appreciate your kind way of helping me.

Thanks a lot!
--
-----------------------
Jan Tomasek aka Semik
http://www.tomasek.cz/

No comments:

Post a Comment