Date: Sat, 20 Nov 2010 19:23:16 +0000 (UTC) From: Andreas Tobler <andreast@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r215577 - head/sys/boot/ofw/libofw Message-ID: <201011201923.oAKJNG2t022982@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: andreast Date: Sat Nov 20 19:23:16 2010 New Revision: 215577 URL: http://svn.freebsd.org/changeset/base/215577 Log: Check the OF_getprop() return value before proceeding. Allocate only as much space as needed for the mode buffer. Use strcmp, relying on OF giving back NULL terminated strings. Submitted by: marius Approved by: nwhitehorn (mentor) Modified: head/sys/boot/ofw/libofw/openfirm.c Modified: head/sys/boot/ofw/libofw/openfirm.c ============================================================================== --- head/sys/boot/ofw/libofw/openfirm.c Sat Nov 20 18:40:50 2010 (r215576) +++ head/sys/boot/ofw/libofw/openfirm.c Sat Nov 20 19:23:16 2010 (r215577) @@ -77,7 +77,7 @@ void OF_init(int (*openfirm)(void *)) { phandle_t options; - char mode[8]; + char mode[sizeof("true")]; openfirmware = openfirm; @@ -93,13 +93,13 @@ OF_init(int (*openfirm)(void *)) if (OF_getprop(chosen, "mmu", &mmu, sizeof(mmu)) == -1) OF_exit(); - /* + /* * Check if we run in real mode. If so, we do not need to map * memory later on. */ options = OF_finddevice("/options"); - OF_getprop(options, "real-mode?", mode, sizeof(mode)); - if (strncmp(mode, "true", 4) == 0) + if (OF_getprop(options, "real-mode?", mode, sizeof(mode)) > 0 && + strcmp(mode, "true") == 0) real_mode = 1; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011201923.oAKJNG2t022982>