Author: rpaulo
Date: Fri Aug  1 23:29:04 2014
New Revision: 269409
URL: http://svnweb.freebsd.org/changeset/base/269409

Log:
  In the shm_open() and shm_unlink() syscalls, export the path to KTR.
  
  MFC after:    1 week

Modified:
  head/sys/kern/uipc_shm.c

Modified: head/sys/kern/uipc_shm.c
==============================================================================
--- head/sys/kern/uipc_shm.c    Fri Aug  1 23:28:21 2014        (r269408)
+++ head/sys/kern/uipc_shm.c    Fri Aug  1 23:29:04 2014        (r269409)
@@ -45,6 +45,7 @@
 __FBSDID("$FreeBSD$");
 
 #include "opt_capsicum.h"
+#include "opt_ktrace.h"
 
 #include <sys/param.h>
 #include <sys/capsicum.h>
@@ -53,6 +54,9 @@ __FBSDID("$FreeBSD$");
 #include <sys/filedesc.h>
 #include <sys/fnv_hash.h>
 #include <sys/kernel.h>
+#include <sys/uio.h>
+#include <sys/signal.h>
+#include <sys/ktrace.h>
 #include <sys/lock.h>
 #include <sys/malloc.h>
 #include <sys/mman.h>
@@ -727,7 +731,10 @@ sys_shm_open(struct thread *td, struct s
        } else {
                path = malloc(MAXPATHLEN, M_SHMFD, M_WAITOK);
                error = copyinstr(uap->path, path, MAXPATHLEN, NULL);
-
+#ifdef KTRACE
+               if (error == 0 && KTRPOINT(curthread, KTR_NAMEI))
+                       ktrnamei(path);
+#endif
                /* Require paths to start with a '/' character. */
                if (error == 0 && path[0] != '/')
                        error = EINVAL;
@@ -825,7 +832,10 @@ sys_shm_unlink(struct thread *td, struct
                free(path, M_TEMP);
                return (error);
        }
-
+#ifdef KTRACE
+       if (KTRPOINT(curthread, KTR_NAMEI))
+               ktrnamei(path);
+#endif
        fnv = fnv_32_str(path, FNV1_32_INIT);
        sx_xlock(&shm_dict_lock);
        error = shm_remove(path, fnv, td->td_ucred);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to