Date: Thu, 6 Mar 2008 12:20:43 GMT From: Sergey Matveychuk <sem@FreeBSD.org> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/121427: kldload crash system when specified not-file argument (device, etc.) Message-ID: <200803061220.m26CKhtZ012737@www.freebsd.org> Resent-Message-ID: <200803061230.m26CU1Q4082769@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 121427 >Category: kern >Synopsis: kldload crash system when specified not-file argument (device, etc.) >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: Thu Mar 06 12:30:00 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Sergey Matveychuk >Release: 7.0-STABLE >Organization: Yandex LLC >Environment: FreeBSD purple.yandex.net 7.0-STABLE FreeBSD 7.0-STABLE #6: Thu Mar 6 12:05:52 MSK 2008 root@purple.yandex.net:/usr/obj/usr/src/sys/PURPLE i386 >Description: Kernel is crashed if you specify a device name instead of a file name for kldload. A code for checking is present but did not call is a full path name specified. >How-To-Repeat: kldload /dev/null >Fix: Patch attached with submission follows: --- sys/kern/kern_linker.c.orig 2008-03-06 11:56:15.000000000 +0300 +++ sys/kern/kern_linker.c 2008-03-06 12:05:04.000000000 +0300 @@ -1704,8 +1704,10 @@ int len; /* qualified at all? */ - if (index(name, '/')) - return (linker_strdup(name)); + if ((cp = index(name, '/')) != NULL) { + len = strlen(++cp); + return (linker_lookup_file(name, cp - name, cp, len, NULL)); + } /* traverse the linker path */ len = strlen(name); >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803061220.m26CKhtZ012737>