diff --git a/src/util/virmdev.c b/src/util/virmdev.c
index c861d21c9e9a17f2a1c105f36394b7a4b7f2ec32..174f48cb3018c5b6426baa7ece0c79a6afac5f69 100644
--- a/src/util/virmdev.c
+++ b/src/util/virmdev.c
@@ -449,9 +449,13 @@ virMediatedDeviceListMarkDevices(virMediatedDeviceListPtr dst,
 
     virObjectLock(dst);
     for (i = 0; i < count; i++) {
+        const char *mdev_path = NULL;
         virMediatedDevicePtr mdev = virMediatedDeviceListGet(src, i);
-        const char *mdev_path = mdev->path;
 
+        if (!mdev)
+            goto cleanup;
+
+        mdev_path = mdev->path;
         if (virMediatedDeviceIsUsed(mdev, dst) ||
             virMediatedDeviceSetUsedBy(mdev, drvname, domname) < 0)
             goto cleanup;