The branch main has been updated by markj:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=c23da668fa8e341c6f51d70ec632de617b693215

commit c23da668fa8e341c6f51d70ec632de617b693215
Author:     Mark Johnston <ma...@freebsd.org>
AuthorDate: 2024-08-28 18:57:33 +0000
Commit:     Mark Johnston <ma...@freebsd.org>
CommitDate: 2024-08-28 18:57:33 +0000

    vmm: Be more consistent with the credential used for VM lookup
    
    vmmdev_lookup() is used from sysctl context to find a VM by name.
    There, a reference credential is already passed, so use that instead of
    assuming that it's the same as curthread->td_ucred, even though that's
    true today.  No functional change intended.
    
    Reviewed by:    corvink, jhb
    Differential Revision:  https://reviews.freebsd.org/D46447
---
 sys/dev/vmm/vmm_dev.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/sys/dev/vmm/vmm_dev.c b/sys/dev/vmm/vmm_dev.c
index c42b2aaee5ed..53b4dc8cda91 100644
--- a/sys/dev/vmm/vmm_dev.c
+++ b/sys/dev/vmm/vmm_dev.c
@@ -152,7 +152,7 @@ vcpu_unlock_all(struct vmmdev_softc *sc)
 }
 
 static struct vmmdev_softc *
-vmmdev_lookup(const char *name)
+vmmdev_lookup(const char *name, struct ucred *cred)
 {
        struct vmmdev_softc *sc;
 
@@ -166,7 +166,7 @@ vmmdev_lookup(const char *name)
        if (sc == NULL)
                return (NULL);
 
-       if (cr_cansee(curthread->td_ucred, sc->ucred))
+       if (cr_cansee(cred, sc->ucred))
                return (NULL);
 
        return (sc);
@@ -786,7 +786,7 @@ vmmdev_lookup_and_destroy(const char *name, struct ucred 
*cred)
        struct vmmdev_softc *sc;
 
        mtx_lock(&vmmdev_mtx);
-       sc = vmmdev_lookup(name);
+       sc = vmmdev_lookup(name, cred);
        if (sc == NULL || sc->cdev == NULL) {
                mtx_unlock(&vmmdev_mtx);
                return (EINVAL);
@@ -860,7 +860,7 @@ vmmdev_create(const char *name, struct ucred *cred)
        int error;
 
        mtx_lock(&vmmdev_mtx);
-       sc = vmmdev_lookup(name);
+       sc = vmmdev_lookup(name, cred);
        mtx_unlock(&vmmdev_mtx);
        if (sc != NULL)
                return (EEXIST);
@@ -876,7 +876,7 @@ vmmdev_create(const char *name, struct ucred *cred)
         * dropped the lock.
         */
        mtx_lock(&vmmdev_mtx);
-       sc2 = vmmdev_lookup(name);
+       sc2 = vmmdev_lookup(name, cred);
        if (sc2 != NULL) {
                mtx_unlock(&vmmdev_mtx);
                vmmdev_destroy(sc);

Reply via email to