From d2908834470c8597f0d2cec8c4caa27972675b5a Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Wed, 22 Sep 2010 19:41:01 +0000 Subject: [PATCH] Move test for zero bufp or size before rseq and wseq calculation. This avoids spinning in an infinite loop for some (possibly corrupt?) core files at work. --- gnu/usr.bin/gdb/kgdb/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/usr.bin/gdb/kgdb/main.c b/gnu/usr.bin/gdb/kgdb/main.c index 3d9440692a33..3110efa3a781 100644 --- a/gnu/usr.bin/gdb/kgdb/main.c +++ b/gnu/usr.bin/gdb/kgdb/main.c @@ -222,11 +222,13 @@ kgdb_dmesg(void) return; bufp = kgdb_parse("msgbufp->msg_ptr"); size = (int)kgdb_parse("msgbufp->msg_size"); + if (bufp == 0 || size == 0) + return; rseq = (int)kgdb_parse("msgbufp->msg_rseq"); wseq = (int)kgdb_parse("msgbufp->msg_wseq"); rseq = MSGBUF_SEQ_TO_POS(size, rseq); wseq = MSGBUF_SEQ_TO_POS(size, wseq); - if (bufp == 0 || size == 0 || rseq == wseq) + if (rseq == wseq) return; printf("\nUnread portion of the kernel message buffer:\n");