From owner-freebsd-bugs@FreeBSD.ORG Sat Oct 1 21:00:36 2005 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2B4F316A440 for ; Sat, 1 Oct 2005 21:00:36 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 26A8C43D48 for ; Sat, 1 Oct 2005 21:00:34 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j91L0YV7079647 for ; Sat, 1 Oct 2005 21:00:34 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j91L0XEA079632; Sat, 1 Oct 2005 21:00:33 GMT (envelope-from gnats) Resent-Date: Sat, 1 Oct 2005 21:00:33 GMT Resent-Message-Id: <200510012100.j91L0XEA079632@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, Gavin Atkinson Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C63C316A41F for ; Sat, 1 Oct 2005 20:57:57 +0000 (GMT) (envelope-from ga9@buffy.york.ac.uk) Received: from mail-gw0.york.ac.uk (mail-gw0.york.ac.uk [144.32.128.245]) by mx1.FreeBSD.org (Postfix) with ESMTP id F319543D45 for ; Sat, 1 Oct 2005 20:57:56 +0000 (GMT) (envelope-from ga9@buffy.york.ac.uk) Received: from buffy.york.ac.uk (buffy-128.york.ac.uk [144.32.128.160]) by mail-gw0.york.ac.uk (8.12.10/8.12.10) with ESMTP id j91Kvsrc012277 for ; Sat, 1 Oct 2005 21:57:54 +0100 (BST) Received: from buffy.york.ac.uk (localhost [127.0.0.1]) by buffy.york.ac.uk (8.13.4/8.13.4) with ESMTP id j91KvsAt008147 for ; Sat, 1 Oct 2005 21:57:54 +0100 (BST) (envelope-from ga9@buffy.york.ac.uk) Received: (from ga9@localhost) by buffy.york.ac.uk (8.13.4/8.13.4/Submit) id j91Kvr7h008146; Sat, 1 Oct 2005 21:57:53 +0100 (BST) (envelope-from ga9) Message-Id: <200510012057.j91Kvr7h008146@buffy.york.ac.uk> Date: Sat, 1 Oct 2005 21:57:53 +0100 (BST) From: Gavin Atkinson To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/86805: [PATCH] savecore fails to byteswap architectureversion field X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Gavin Atkinson List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Oct 2005 21:00:36 -0000 >Number: 86805 >Category: bin >Synopsis: [PATCH] savecore fails to byteswap architectureversion field >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: Sat Oct 01 21:00:33 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Gavin Atkinson >Release: FreeBSD 6.0-BETA5 i386 >Organization: >Environment: System: FreeBSD buffy.york.ac.uk 6.0-BETA5 FreeBSD 6.0-BETA5 #1: Fri Sep 30 12:26:25 BST 2005 root@buffy.york.ac.uk:/usr/obj/usr/src/sys/BUFFY i386 >Description: When savecore runs and finds a core, it will create an info.X file with an ASCII representation of the dump header. Five of the fields within this header are supposed to be in "dump byte order", which is the same as network byte order (see the comment in sys/kerneldump.h). The current version of the AMD64 dump is 2, however the contents of the info file corresponding to an amd64 dump is as follows: wiggum# cat /var/crash/info.0 Dump header from device /dev/da0s1b Architecture: amd64 Architecture Version: 33554432 [...] Note that 33554432 = 0x02000000, i.e. it needs to be byte swapped but hasn't been. This problem isn't amd64 specific, it seems to affect all little-endian platforms, and was introduced (seemingly accidentally) in version 1.71 of src/sbin/savecore.c See http://lists.freebsd.org/pipermail/freebsd-hackers/2005-May/012028.html for an i386 example of the bug. >How-To-Repeat: Panic a system with dumps enabled, look at /var/crash/info.X and compare the architecture version to that defined in /usr/include/sys/kerneldump.h >Fix: --- savecore.diff begins here --- Index: src/sbin/savecore/savecore.c =================================================================== RCS file: /usr/cvs/src/sbin/savecore/savecore.c,v retrieving revision 1.76 diff -u -r1.76 savecore.c --- src/sbin/savecore/savecore.c 13 Sep 2005 19:15:28 -0000 1.76 +++ src/sbin/savecore/savecore.c 1 Oct 2005 20:30:47 -0000 @@ -107,7 +107,8 @@ fprintf(f, "Dump header from device %s\n", device); fprintf(f, " Architecture: %s\n", h->architecture); - fprintf(f, " Architecture Version: %u\n", h->architectureversion); + fprintf(f, " Architecture Version: %u\n", + dtoh32(h->architectureversion)); dumplen = dtoh64(h->dumplength); fprintf(f, " Dump Length: %lldB (%lld MB)\n", (long long)dumplen, (long long)(dumplen >> 20)); --- savecore.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: