Date: Mon, 20 Aug 2012 23:43:04 +0000 (UTC) From: Alexander Kabaev <kan@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r239470 - head/libexec/rtld-elf Message-ID: <201208202343.q7KNh4QG015636@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kan Date: Mon Aug 20 23:43:03 2012 New Revision: 239470 URL: http://svn.freebsd.org/changeset/base/239470 Log: Do not call process_nodelete with NULL object pointer. The place where the function is called can be reached if object loading and relocation fails too, in which case obj pointer will be NULL. Do not call process_nodelete then, or crash will follow. Pointy hat to: kan Modified: head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Mon Aug 20 20:56:40 2012 (r239469) +++ head/libexec/rtld-elf/rtld.c Mon Aug 20 23:43:03 2012 (r239470) @@ -2853,7 +2853,8 @@ dlopen_object(const char *name, int fd, * This has to be done after we have loaded all of the * dependencies, so that we do not miss any. */ - process_nodelete(obj); + if (obj != NULL) + process_nodelete(obj); } else { /* * Bump the reference counts for objects on this DAG. If
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208202343.q7KNh4QG015636>