提交 ee6ec782 编写于 作者: A Andrea Bolognani

qemu: Call chmod() after mknod()

mknod() is affected my the current umask, so we're not
guaranteed the newly-created device node will have the
right permissions.

Call chmod(), which is not affected by the current umask,
immediately afterwards to solve the issue.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1421036
上级 e04bd5b6
...@@ -7152,6 +7152,16 @@ qemuDomainCreateDeviceRecursive(const char *device, ...@@ -7152,6 +7152,16 @@ qemuDomainCreateDeviceRecursive(const char *device,
} }
goto cleanup; goto cleanup;
} }
/* Set the file permissions again: mknod() is affected by the
* current umask, and as such might not have set them correctly */
if (create &&
chmod(devicePath, sb.st_mode) < 0) {
virReportSystemError(errno,
_("Failed to set permissions for device %s"),
devicePath);
goto cleanup;
}
} }
if (!create) { if (!create) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册