diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-04-23 07:43:32 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-04-23 07:43:32 +0000 |
commit | c389bd2d6b53e3b913352677ac48288b5b90c6b4 (patch) | |
tree | 8c78b757e6d23b62b1a6f37a8dc655c8d56f0865 /source3 | |
parent | d44ae9e229c67f0bf230c0d64d903a55f592f248 (diff) | |
download | samba-c389bd2d6b53e3b913352677ac48288b5b90c6b4.tar.gz samba-c389bd2d6b53e3b913352677ac48288b5b90c6b4.tar.bz2 samba-c389bd2d6b53e3b913352677ac48288b5b90c6b4.zip |
trick to get full stack trace when using the free version of insure
(This used to be commit bb9b3e03deebe23cf3fe10c2cb9b67a730e086a2)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/server.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c index a7baa9e327..387aeb5df1 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -779,3 +779,27 @@ static void usage(char *pname) exit_server("normal exit"); return(0); } + + +#ifdef __INSURE__ +int _Insure_trap_error(int a1, int a2, int a3, int a4, int a5, int a6) +{ + static int (*fn)(); + int ret; + char *cmd = lp_panic_action(); + + if (!fn) { + static void *h; + h = dlopen("/usr/local/parasoft/insure++lite/lib.linux2/libinsure.so", RTLD_LAZY); + fn = dlsym(h, "_Insure_trap_error"); + } + + ret = fn(a1, a2, a3, a4, a5, a6); + + if (cmd && *cmd) { + system(cmd); + } + + return ret; +} +#endif |