diff options
Diffstat (limited to 'system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch')
-rw-r--r-- | system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch b/system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch deleted file mode 100644 index 60d95db7c9..0000000000 --- a/system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch +++ /dev/null @@ -1,88 +0,0 @@ -From f7236a195c84687edb74fec28b6c4cc98e34185c Mon Sep 17 00:00:00 2001 -From: Vincent Batts <vbatts@redhat.com> -Date: Fri, 7 Aug 2015 10:18:20 -0400 -Subject: [PATCH 1/4] devicemapper: fix zero-sized field access - -Fixes: #15279 - -Due to -https://github.com/golang/go/commit/7904946eeb35faece61bbf6f5b3cc8be2f519c17 -the devices field is dropped. - -This solution works on go1.4 and go1.5 - -Signed-off-by: Vincent Batts <vbatts@redhat.com> ---- - daemon/graphdriver/devmapper/deviceset.go | 14 +++++++++----- - pkg/devicemapper/devmapper_wrapper.go | 18 +++++++++++++++--- - 2 files changed, 24 insertions(+), 8 deletions(-) - -diff --git a/daemon/graphdriver/devmapper/deviceset.go b/daemon/graphdriver/devmapper/deviceset.go -index 2eee330..a80736a 100644 ---- a/daemon/graphdriver/devmapper/deviceset.go -+++ b/daemon/graphdriver/devmapper/deviceset.go -@@ -1482,12 +1482,16 @@ func (devices *DeviceSet) deactivatePool() error { - if err != nil { - return err - } -- if d, err := devicemapper.GetDeps(devname); err == nil { -- // Access to more Debug output -- logrus.Debugf("[devmapper] devicemapper.GetDeps() %s: %#v", devname, d) -+ -+ if devinfo.Exists == 0 { -+ return nil - } -- if devinfo.Exists != 0 { -- return devicemapper.RemoveDevice(devname) -+ if err := devicemapper.RemoveDevice(devname); err != nil { -+ return err -+ } -+ -+ if d, err := devicemapper.GetDeps(devname); err == nil { -+ logrus.Warnf("[devmapper] device %s still has %d active dependents", devname, d.Count) - } - - return nil -diff --git a/pkg/devicemapper/devmapper_wrapper.go b/pkg/devicemapper/devmapper_wrapper.go -index 87c2003..44ca772 100644 ---- a/pkg/devicemapper/devmapper_wrapper.go -+++ b/pkg/devicemapper/devmapper_wrapper.go -@@ -38,7 +38,10 @@ static void log_with_errno_init() - */ - import "C" - --import "unsafe" -+import ( -+ "reflect" -+ "unsafe" -+) - - type ( - CDmTask C.struct_dm_task -@@ -184,12 +187,21 @@ func dmTaskGetDepsFct(task *CDmTask) *Deps { - if Cdeps == nil { - return nil - } -+ -+ // golang issue: https://github.com/golang/go/issues/11925 -+ hdr := reflect.SliceHeader{ -+ Data: uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + unsafe.Sizeof(*Cdeps))), -+ Len: int(Cdeps.count), -+ Cap: int(Cdeps.count), -+ } -+ devices := *(*[]C.uint64_t)(unsafe.Pointer(&hdr)) -+ - deps := &Deps{ - Count: uint32(Cdeps.count), - Filler: uint32(Cdeps.filler), - } -- for _, device := range Cdeps.device { -- deps.Device = append(deps.Device, (uint64)(device)) -+ for _, device := range devices { -+ deps.Device = append(deps.Device, uint64(device)) - } - return deps - } --- -2.4.3 - |