From: Andrew Tridgell Date: Mon, 24 Apr 2000 11:30:24 +0000 (+0000) Subject: moved the INSURE hook into util.c X-Git-Tag: samba-4.0.0alpha6~801^2~20017 X-Git-Url: http://git.samba.org/samba.git/?a=commitdiff_plain;h=e5b79f3d5b9f771032bdf92de177dc57f150d23a;p=nivanova%2Fsamba-autobuild%2F.git moved the INSURE hook into util.c (This used to be commit 8c726b9764bac0bc95cf9877e172c9e1262e576d) --- diff --git a/source3/lib/util.c b/source3/lib/util.c index c27e96beea4..981dd51f9da 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -2651,3 +2651,29 @@ char *parent_dirname(const char *path) } return dirpath; } + + +#ifdef __INSURE__ +int _Insure_trap_error(int a1, int a2, int a3, int a4, int a5, int a6) +{ + static int (*fn)(); + int ret; + char pidstr[10]; + pstring cmd = "/usr/X11R6/bin/xterm -display :0 -T Panic -n Panic -e /bin/sh -c 'cat /tmp/ierrs.*.%d ; gdb /proc/%d/exe %d'"; + + slprintf(pidstr, sizeof(pidstr), "%d", getpid()); + pstring_sub(cmd, "%d", pidstr); + + 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); + + system(cmd); + + return ret; +} +#endif