Author: bapt
Date: Mon Aug 15 08:20:37 2016
New Revision: 304113
URL: https://svnweb.freebsd.org/changeset/base/304113

Log:
  MFC: r303685
  
  truss: fix uninitialized trussinfo->curthread in add_threads()/enter_syscall
  
  trussinfo->curthread must be initialized before calling enter_syscall(),
  it is used by t->proc->abi->fetch_args().
  Without that truss is segfaulting and the attached program also crash.
  
  Submitted by: Nikita Kozlov (nik...@gandi.net)
  Reviewed by:  jhb
  Approved by:  re (gjb)
  Differential Revision:        https://reviews.freebsd.org/D7399

Modified:
  releng/11.0/usr.bin/truss/setup.c
Directory Properties:
  releng/11.0/   (props changed)

Modified: releng/11.0/usr.bin/truss/setup.c
==============================================================================
--- releng/11.0/usr.bin/truss/setup.c   Mon Aug 15 08:07:07 2016        
(r304112)
+++ releng/11.0/usr.bin/truss/setup.c   Mon Aug 15 08:20:37 2016        
(r304113)
@@ -223,8 +223,10 @@ add_threads(struct trussinfo *info, stru
                t = new_thread(p, lwps[i]);
                if (ptrace(PT_LWPINFO, lwps[i], (caddr_t)&pl, sizeof(pl)) == -1)
                        err(1, "ptrace(PT_LWPINFO)");
-               if (pl.pl_flags & PL_FLAG_SCE)
+               if (pl.pl_flags & PL_FLAG_SCE) {
+                       info->curthread = t;
                        enter_syscall(info, t, &pl);
+               }
        }
        free(lwps);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to