summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2000-04-23 07:43:32 +0000
committerAndrew Tridgell <tridge@samba.org>2000-04-23 07:43:32 +0000
commitc389bd2d6b53e3b913352677ac48288b5b90c6b4 (patch)
tree8c78b757e6d23b62b1a6f37a8dc655c8d56f0865 /source3
parentd44ae9e229c67f0bf230c0d64d903a55f592f248 (diff)
downloadsamba-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.c24
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