Author: markj
Date: Tue Apr 29 03:36:04 2014
New Revision: 265073
URL: http://svnweb.freebsd.org/changeset/base/265073

Log:
  MFC r264436:
  Fix some off-by-one errors. The kve_end and rdl_eaddr fields contain the
  first address after the end of the map entry and should therefore be
  excluded.

Modified:
  stable/10/lib/libproc/proc_sym.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/lib/libproc/proc_sym.c
==============================================================================
--- stable/10/lib/libproc/proc_sym.c    Tue Apr 29 01:17:43 2014        
(r265072)
+++ stable/10/lib/libproc/proc_sym.c    Tue Apr 29 03:36:04 2014        
(r265073)
@@ -96,7 +96,7 @@ proc_objname(struct proc_handle *p, uint
 
        for (i = 0; i < p->nobjs; i++) {
                rdl = &p->rdobjs[i];
-               if (addr >= rdl->rdl_saddr && addr <= rdl->rdl_eaddr) {
+               if (addr >= rdl->rdl_saddr && addr < rdl->rdl_eaddr) {
                        strlcpy(objname, rdl->rdl_path, objnamesz);
                        return (objname);
                }
@@ -176,7 +176,7 @@ proc_addr2map(struct proc_handle *p, uin
                        kve = kves + i;
                        if (kve->kve_type == KVME_TYPE_VNODE)
                                lastvn = i;
-                       if (addr >= kve->kve_start && addr <= kve->kve_end) {
+                       if (addr >= kve->kve_start && addr < kve->kve_end) {
                                if ((map = malloc(sizeof(*map))) == NULL) {
                                        free(kves);
                                        return (NULL);
@@ -209,7 +209,7 @@ proc_addr2map(struct proc_handle *p, uin
 
        for (i = 0; i < p->nobjs; i++) {
                rdl = &p->rdobjs[i];
-               if (addr >= rdl->rdl_saddr && addr <= rdl->rdl_eaddr) {
+               if (addr >= rdl->rdl_saddr && addr < rdl->rdl_eaddr) {
                        if ((map = malloc(sizeof(*map))) == NULL)
                                return (NULL);
                        proc_rdl2prmap(rdl, map);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to