> On 22 Sep 2020, at 00:48, Jan Tomasek <j...@tomasek.cz> wrote:
> 
> Hi William,
> 
>> An interesting idea that could bring you a lot assurance, would be to
>> integrate and test with Address Sanitiser. This would help you find
>> and detect potential memory safety issues in the plugin. If you want
>> some advice on how to do this, I'm happy to help.
> 
> Using Address Sanitiser is completely new topic to me. But I would like
> to give it try, if you would by so nice to provide me with pointers how
> to start.

Sure, you'll probably need to build the 389-ds rpms with the correct options or 
at least a local build from our development page since ns-slapd also needs ASAN 
enabled to work in this case. You should *not* run ASAN in production (due to 
elevated risk of crashing on a fault, and there is a potential root priv esc 
iirc from it). So this is for testing only :)

https://www.port389.org/docs/389ds/contributing.html#building-the-project

If I recall, you can do:

ASAN_ON=1 make -f rpm.mk rpms


Then in your own makefile, you need to define these extra CFLAGS:

-fsanitize=address -fno-omit-frame-pointer -lasan


Build your plugin as normal, and to check that it is build correctly you can 
see if asan required by the plugin:

$ ldd /opt/dirsrv/lib/dirsrv/plugins/libautomember-plugin.so  | grep -i asan
        libasan.so.6 => /usr/lib64/libasan.so.6 (0x00007fa3a92ea000)

If you see that, you're good to go and do your tests. You'll want to run 
ns-slapd in the foreground to get the output.

ns-slapd -d 0 -D /etc/dirsrv/slapd-instance


If asan finds a fault it will crash and put a trace in to the console that 
gives details about where the memory fault occured. 


Hope that this (quick/rough) guide helps :) 


> 
> Thanks
> -- 
> -----------------------
> Jan Tomasek aka Semik
> http://www.tomasek.cz/
> 

—
Sincerely,

William Brown

Senior Software Engineer, 389 Directory Server
SUSE Labs, Australia
_______________________________________________
389-users mailing list -- 389-users@lists.fedoraproject.org
To unsubscribe send an email to 389-users-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/389-users@lists.fedoraproject.org

Reply via email to