moved the INSURE hook into util.c
authorAndrew Tridgell <tridge@samba.org>
Mon, 24 Apr 2000 11:30:24 +0000 (11:30 +0000)
committerAndrew Tridgell <tridge@samba.org>
Mon, 24 Apr 2000 11:30:24 +0000 (11:30 +0000)
(This used to be commit 8c726b9764bac0bc95cf9877e172c9e1262e576d)

source3/lib/util.c

index c27e96beea4ace14f8c7fb32e15b67c74e47aefd..981dd51f9daf2a3e62c1a7bd6a463172a06688d0 100644 (file)
@@ -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