Author: kevans
Date: Fri Apr 17 02:09:31 2020
New Revision: 360031
URL: https://svnweb.freebsd.org/changeset/base/360031

Log:
  audit_canon_path_vp: don't panic if cdir == NULL
  
  cdir may have simply failed to resolve (e.g. fget_cap failure in namei
  leading to NULL dp passed to AUDIT_ARG_UPATH*_VP); restore the pre-rS358191
  behavior of setting cpath[0] = '\0' and bailing out instead of panicking.
  
  This was found by inadvertently running the libc/c063 tests with auditing
  enabled, resulting in a panic.
  
  Reviewed by:  mjg (committed version actually his)
  Differential Revision:        https://reviews.freebsd.org/D24445

Modified:
  head/sys/security/audit/audit_bsm_klib.c

Modified: head/sys/security/audit/audit_bsm_klib.c
==============================================================================
--- head/sys/security/audit/audit_bsm_klib.c    Fri Apr 17 01:52:27 2020        
(r360030)
+++ head/sys/security/audit/audit_bsm_klib.c    Fri Apr 17 02:09:31 2020        
(r360031)
@@ -433,10 +433,15 @@ audit_canon_path_vp(struct thread *td, struct vnode *r
            __func__,  __FILE__, __LINE__);
 
        copy = path;
-       if (*path == '/')
+       if (*path == '/') {
                vp = rdir;
-       else
+       } else {
+               if (cdir == NULL) {
+                       cpath[0] = '\0';
+                       return;
+               }
                vp = cdir;
+       }
        MPASS(vp != NULL);
        /*
         * NB: We require that the supplied array be at least MAXPATHLEN bytes
_______________________________________________
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