File d24e6b8-CVE-2013-6456.patch of Package libvirt.openSUSE_13.1_Update
From c54afa41704e0e05829b9d373600ea194068ecbb Mon Sep 17 00:00:00 2001
From: "Daniel P. Berrange" <berrange@redhat.com>
Date: Wed, 5 Feb 2014 11:01:09 +0000
Subject: [PATCH 05/14] Disks are always block devices, never character devices
The LXC disk hotplug code was allowing block or character devices
to be given as disk. A disk is always a block device.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
(cherry picked from commit d24e6b8b1eb87daa6ee467b76cf343725468949c)
---
src/lxc/lxc_driver.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
Index: libvirt-1.1.2/src/lxc/lxc_driver.c
===================================================================
--- libvirt-1.1.2.orig/src/lxc/lxc_driver.c
+++ libvirt-1.1.2/src/lxc/lxc_driver.c
@@ -3100,9 +3100,9 @@ lxcDomainAttachDeviceDiskLive(virLXCDriv
goto cleanup;
}
- if (!S_ISCHR(sb.st_mode) && !S_ISBLK(sb.st_mode)) {
+ if (!S_ISBLK(sb.st_mode)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Disk source %s must be a character/block device"),
+ _("Disk source %s must be a block device"),
def->src);
goto cleanup;
}
@@ -3114,11 +3114,7 @@ lxcDomainAttachDeviceDiskLive(virLXCDriv
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0)
goto cleanup;
- mode = 0700;
- if (S_ISCHR(sb.st_mode))
- mode |= S_IFCHR;
- else
- mode |= S_IFBLK;
+ mode = 0700 | S_IFBLK;
/* Yes, the device name we're creating may not
* actually correspond to the major:minor number