Date: Mon, 8 Jun 2020 13:27:45 +0000 (UTC) From: Mark Johnston <markj@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r361927 - stable/12/lib/librtld_db Message-ID: <202006081327.058DRj9r080782@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: markj Date: Mon Jun 8 13:27:45 2020 New Revision: 361927 URL: https://svnweb.freebsd.org/changeset/base/361927 Log: MFC r361844: librtld_db: Handle anonymous mappings below the first file mapping. Modified: stable/12/lib/librtld_db/rtld_db.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/librtld_db/rtld_db.c ============================================================================== --- stable/12/lib/librtld_db/rtld_db.c Mon Jun 8 11:48:07 2020 (r361926) +++ stable/12/lib/librtld_db/rtld_db.c Mon Jun 8 13:27:45 2020 (r361927) @@ -186,11 +186,15 @@ rd_loadobj_iter(rd_agent_t *rdap, rl_iter_f *cb, void * file, but we want the mapping offset relative to the base * mapping. */ - if (kve->kve_type == KVME_TYPE_VNODE && - kve->kve_vn_fileid != fileid) { - base = kve->kve_start; - fileid = kve->kve_vn_fileid; - path = kve->kve_path; + if (kve->kve_type == KVME_TYPE_VNODE) { + if (kve->kve_vn_fileid != fileid) { + base = kve->kve_start; + fileid = kve->kve_vn_fileid; + path = kve->kve_path; + } + } else { + base = 0; + path = NULL; } memset(&rdl, 0, sizeof(rdl)); /* @@ -205,7 +209,8 @@ rd_loadobj_iter(rd_agent_t *rdap, rl_iter_f *cb, void rdl.rdl_prot |= RD_RDL_W; if (kve->kve_protection & KVME_PROT_EXEC) rdl.rdl_prot |= RD_RDL_X; - strlcpy(rdl.rdl_path, path, sizeof(rdl.rdl_path)); + if (path != NULL) + strlcpy(rdl.rdl_path, path, sizeof(rdl.rdl_path)); if ((*cb)(&rdl, clnt_data) != 0) { ret = RD_ERR; break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202006081327.058DRj9r080782>