SIGBUS in bbcombotest
list Nicolas Dorfsman
Hi, I'm trying to use bbcombotest : (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where [1] _libc_kill(0x0, 0x6, 0x0, 0xffffffff, 0x37f20, 0xff1358a0), at 0xff19fc14 [2] abort(0xff1bc008, 0x0, 0x0, 0x0, 0x220f8, 0x187fc), at 0xff135984 =>[3] sigsegv_handler(signum = ???) (optimized), at 0x18834 (line ~57) in "sig.c" [4] sigacthandler(0xa, 0x0, 0xffbe1fd0, 0x0, 0xffbe2a55, 0x2e), at 0xff19ec38 ---- called from signal handler with signal 10 (SIGBUS) ------ [5] t_splay(0x319a8, 0x7987c, 0x10, 0x7c, 0x73, 0x7c), at 0xff142974 [6] t_delete(0x319a8, 0xff1bc008, 0x0, 0x319a4, 0x39c88, 0xfffffffc), at 0xff1427d8 [7] realfree(0x319a0, 0xff1c2858, 0xff1bc008, 0x319a4, 0xffffffff, 0x319ac), at 0xff1423dc [8] cleanfree(0x0, 0xff1bc008, 0xff1c27cc, 0xff1c284c, 0xff1c27cc, 0x0), at 0xff142cb0 [9] _malloc_unlocked(0x4, 0x7a34c, 0xff1bc008, 0x8, 0x22300, 0x0), at 0xff141de4 [10] malloc(0x4, 0xffbe2a5c, 0x73000000, 0x7efefeff, 0x81010100, 0xff00), at 0xff141cd8 [11] strdup(0xffbe2a56, 0xff1bc008, 0x319ac, 0xff1bc008, 0x22300, 0xff142b64), at 0xff14f56c [12] xstrdup(s = ???) (optimized), at 0x15380 (line ~172) in "memory.c" [13] gettname(spec = ???) (optimized), at 0x12a18 (line ~72) in "bbcombotest.c" [14] evaluate(symbolicexpr = ???, resultexpr = ???, valuelist = ???, errbuf = ???) (optimized), at 0x13464 (line ~288) in "bbcombotest.c" [15] update_combotests(showeval = ???, cleanexpr = ???) (optimized), at 0x13800 (line ~396) in "bbcombotest.c" [16] main(argc = ???, argv = ???) (optimized), at 0x13b2c (line ~471) in "bbcombotest.c" Any idea ?
list Nicolas Dorfsman
*** bbcombotest.c.orig Fri May 19 14:02:54 2006
--- bbcombotest.c Wed Jul 5 15:43:22 2006
***************
*** 69,77 ****
/* grab the testname part from a "www.xxx.com.testname"
string */
p = strrchr(spec, '.');
! if (p) result = strdup(p+1); else result = "";
! return result;
}
static void flush_valuelist(value_t *head)
--- 69,81 ----
/* grab the testname part from a "www.xxx.com.testname"
string */
p = strrchr(spec, '.');
! if (p) {
! result = strdup(p);
! }
! else
! result = "";
! return result+1;
}
static void flush_valuelist(value_t *head)
list Henrik Størner
This patch is wrong; in some circumstances it will assign "result" to an empty string, and then return a pointer that is past the end of the empty string. Could you provide me with an example of what you have in the bbcombotest.cfg file that triggers this problem ? Regards, Henrik
▸
On Wed, Jul 05, 2006 at 03:44:33PM +0200, Nicolas Dorfsman wrote:*** bbcombotest.c.orig Fri May 19 14:02:54 2006
--- bbcombotest.c Wed Jul 5 15:43:22 2006
***************
*** 69,77 ****
/* grab the testname part from a "www.xxx.com.testname" string */
p = strrchr(spec, '.');
! if (p) result = strdup(p+1); else result = "";
! return result;
}
static void flush_valuelist(value_t *head)
--- 69,81 ----
/* grab the testname part from a "www.xxx.com.testname" string */
p = strrchr(spec, '.');
! if (p) {
! result = strdup(p);
! }
! else
! result = "";
! return result+1;
}
static void flush_valuelist(value_t *head)
--
Henrik Storner
list Jason K. Kruse
Didn't see this mentioned anywhere. Hobbit version 4.2-alfa-20060502 With the following log the order of entries in localclient.cfg is important if you use a regex for the match. Jul 5 09:20:01 wombat scsi: [ID 107833 kern.warning] WARNING: /pci at 1f,2000/fibre-channel at 1/sd at 1,0 (sd287): Jul 5 09:20:01 wombat Error for Command: Error Level: Informational This causes the yellow page with a single yellow dot, as expected. LOG /var/adm/messages %(?-i)WARNING COLOR=yellow GROUP=root LOG /var/adm/messages IGNORE=%(?-i)Informational "Error Level" COLOR=red This causes a red page with a single yellow dot. LOG /var/adm/messages %(?-i)WARNING COLOR=yellow GROUP=root LOG /var/adm/messages IGNORE=%(?-i)Informational %(?-i)Error.Level COLOR=red Altering the order to have the red check first causes the expected yellow page to show. Jason
list Nicolas Dorfsman
▸
Le 5 juil. 06 à 16:21, Henrik Stoerner a écrit :
This patch is wrong; in some circumstances it will assign "result" to an empty string, and then return a pointer that is past the end of the empty string.
Correct. I did it quick.
▸
Could you provide me with an example of what you have in the bbcombotest.cfg file that triggers this problem ?
(c92-dc200.dns||c92-dc220.dns||c92-dc221.dns) The problem is the "p+1" which may abort in SIGBUS. Nicolas
list Henrik Størner
▸
On Wed, Jul 05, 2006 at 09:33:20AM -0500, Kruse, Jason K. wrote:
Hobbit version 4.2-alfa-20060502 With the following log the order of entries in localclient.cfg is important if you use a regex for the match.
This turned out to be a bug in the log handling code. Fixed now. Regards, Henrik
list Henrik Størner
▸
On Wed, Jul 05, 2006 at 04:43:52PM +0200, Nicolas Dorfsman wrote:
Could you provide me with an example of what you have in the bbcombotest.cfg file that triggers this problem ?(c92-dc200.dns||c92-dc220.dns||c92-dc221.dns)
This is wrong. When you have dashes in the hostnames, they need to be escaped with a backslash. So: (c92\-dc200.dns||c92\-dc220.dns||c92\-dc221.dns) Regards, Henrik