svn commit: r361927 - stable/12/lib/librtld_db
Mark Johnston
markj at FreeBSD.org
Mon Jun 8 13:27:46 UTC 2020
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;
More information about the svn-src-all
mailing list