From owner-freebsd-bugs@FreeBSD.ORG Sun Jan 27 18:50:01 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35A8816A420 for ; Sun, 27 Jan 2008 18:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 0DC9B13C4E9 for ; Sun, 27 Jan 2008 18:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m0RIo0c3030618 for ; Sun, 27 Jan 2008 18:50:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m0RIo0tQ030617; Sun, 27 Jan 2008 18:50:00 GMT (envelope-from gnats) Resent-Date: Sun, 27 Jan 2008 18:50:00 GMT Resent-Message-Id: <200801271850.m0RIo0tQ030617@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Patrick Lamaiziere Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5E16616A41B for ; Sun, 27 Jan 2008 18:43:19 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id 4CCEE13C45B for ; Sun, 27 Jan 2008 18:43:19 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m0RIfaie065210 for ; Sun, 27 Jan 2008 18:41:36 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.2/8.14.1/Submit) id m0RIfaO2065209; Sun, 27 Jan 2008 18:41:36 GMT (envelope-from nobody) Message-Id: <200801271841.m0RIfaO2065209@www.freebsd.org> Date: Sun, 27 Jan 2008 18:41:36 GMT From: Patrick Lamaiziere To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: misc/120055: kdump segfaults on freebsd6_mmap syscall X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2008 18:50:01 -0000 >Number: 120055 >Category: misc >Synopsis: kdump segfaults on freebsd6_mmap syscall >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jan 27 18:50:00 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Patrick Lamaiziere >Release: RELENG_7_0 >Organization: >Environment: FreeBSD roxette.lamaiziere.net 7.0-RC1 FreeBSD 7.0-RC1 #0: Fri Jan 25 18:06:03 CET 2008 patrick@roxette.lamaiziere.net:/usr/obj/usr/src/sys/ROXETTE i386 >Description: kdump crashs with a segfault when dumping the content of the syscall freebsd6_mmap : $ kdump 69472 bash CALL freebsd6_mmap(0x3,0xbfbfdeb8,672202704,MAP_SHARED|[CUT],0,0,... I've inserted some printf() in /usr/src/usr.bin/kdump/kdump.c and the problem is that ktr->narg is equal to 3 when ktrsyscall() is called for this syscall. Line 305,/usr/src/usr.bin/kdump/kdump.c void ktrsyscall(struct ktr_syscall *ktr) { int narg = ktr->ktr_narg; register_t *ip; [CUT] #ifdef SYS_freebsd6_mmap } else if (ktr->ktr_code == SYS_freebsd6_mmap) { print_number(ip,narg,c); print_number(ip,narg,c); (void)putchar(','); mmapprotname ((int)*ip); (void)putchar(','); ip++; narg--; mmapflagsname ((int)*ip); ip++; narg--; Here narg = -1 because the macro print_number() decrements narg. So a after, it loops until it segfaults: [CUT] while (narg) { print_number(ip,narg,c); } (void)putchar(')'); For a fix, a "while (narg>0)" will be safer but i don't know if this is a bug on the call, a bug on ktrace or only a bug in kdump. Regards. >How-To-Repeat: The krace.out (gziped) can be found here : http://user.lamaiziere.net/patrick/ktrace.out.gz >Fix: >Release-Note: >Audit-Trail: >Unformatted: