From owner-svn-src-head@FreeBSD.ORG Sun May 6 16:01:59 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66438106566C; Sun, 6 May 2012 16:01:59 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 382DC8FC0C; Sun, 6 May 2012 16:01:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q46G1xrj021257; Sun, 6 May 2012 16:01:59 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q46G1xSr021254; Sun, 6 May 2012 16:01:59 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <201205061601.q46G1xSr021254@svn.freebsd.org> From: Tim Kientzle Date: Sun, 6 May 2012 16:01:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r235094 - head/sys/boot/uboot/common X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2012 16:01:59 -0000 Author: kientzle Date: Sun May 6 16:01:58 2012 New Revision: 235094 URL: http://svn.freebsd.org/changeset/base/235094 Log: Don't call strcmp with a NULL pointer. In particular, on the AM335x, which comes up with no memory mapped to low addresses, dereferencing the NULL causes a crash. Modified: head/sys/boot/uboot/common/main.c head/sys/boot/uboot/common/metadata.c Modified: head/sys/boot/uboot/common/main.c ============================================================================== --- head/sys/boot/uboot/common/main.c Sun May 6 15:56:07 2012 (r235093) +++ head/sys/boot/uboot/common/main.c Sun May 6 16:01:58 2012 (r235094) @@ -116,6 +116,16 @@ meminfo(void) } } +static uint64_t +uboot_loadaddr(u_int type, void *data, uint64_t addr) +{ + printf("uboot_loadaddr: type=%d data=0x%x addr=0x%x\n", + type, data, addr); + if (type == 1) + return 0x40000000; + return (addr); +} + int main(void) { @@ -211,6 +221,7 @@ main(void) archsw.arch_copyout = uboot_copyout; archsw.arch_readin = uboot_readin; archsw.arch_autoload = uboot_autoload; + archsw.arch_loadaddr = uboot_loadaddr; interact(); /* doesn't return */ Modified: head/sys/boot/uboot/common/metadata.c ============================================================================== --- head/sys/boot/uboot/common/metadata.c Sun May 6 15:56:07 2012 (r235093) +++ head/sys/boot/uboot/common/metadata.c Sun May 6 16:01:58 2012 (r235094) @@ -72,6 +72,7 @@ static int md_getboothowto(char *kargs) { char *cp; + char *p; int howto; int active; int i; @@ -132,10 +133,12 @@ md_getboothowto(char *kargs) if (getenv(howto_names[i].ev) != NULL) howto |= howto_names[i].mask; } - if (!strcmp(getenv("console"), "comconsole")) - howto |= RB_SERIAL; - if (!strcmp(getenv("console"), "nullconsole")) - howto |= RB_MUTE; + if ((p = getenv("console"))) { + if (!strcmp(p, "comconsole")) + howto |= RB_SERIAL; + if (!strcmp(p, "nullconsole")) + howto |= RB_MUTE; + } return(howto); }