From 1f55734d4c2021067790dc1ab895deb50e562154 Mon Sep 17 00:00:00 2001 From: Flavio Crisciani Date: Thu, 1 Mar 2018 09:24:36 -0800 Subject: [PATCH] Fix crash if the len was < maxSetStringLen If the len was less than the max length, there was a panic Signed-off-by: Flavio Crisciani --- libnetwork/service_common.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libnetwork/service_common.go b/libnetwork/service_common.go index 0ec4cb50e3..1780000d0d 100644 --- a/libnetwork/service_common.go +++ b/libnetwork/service_common.go @@ -287,7 +287,10 @@ func (c *controller) addServiceBinding(svcName, svcID, nID, eID, containerName s ok, entries := s.assignIPToEndpoint(ip.String(), eID) if !ok || entries > 1 { setStr, b := s.printIPToEndpoint(ip.String()) - logrus.Warnf("addServiceBinding %s possible transient state ok:%t entries:%d set:%t %s", eID, ok, entries, b, setStr[:maxSetStringLen]) + if len(setStr) > maxSetStringLen { + setStr = setStr[:maxSetStringLen] + } + logrus.Warnf("addServiceBinding %s possible transient state ok:%t entries:%d set:%t %s", eID, ok, entries, b, setStr) } // Add loadbalancer service and backend in all sandboxes in @@ -355,7 +358,10 @@ func (c *controller) rmServiceBinding(svcName, svcID, nID, eID, containerName st ok, entries := s.removeIPToEndpoint(ip.String(), eID) if !ok || entries > 0 { setStr, b := s.printIPToEndpoint(ip.String()) - logrus.Warnf("rmServiceBinding %s possible transient state ok:%t entries:%d set:%t %s", eID, ok, entries, b, setStr[:maxSetStringLen]) + if len(setStr) > maxSetStringLen { + setStr = setStr[:maxSetStringLen] + } + logrus.Warnf("rmServiceBinding %s possible transient state ok:%t entries:%d set:%t %s", eID, ok, entries, b, setStr) } // Remove loadbalancer service(if needed) and backend in all