Browse Source

Merge pull request #520 from aboch/vd

Limit valid object names
Jana Radhakrishnan 9 years ago
parent
commit
cfac9179ba
3 changed files with 6 additions and 3 deletions
  1. 1 1
      libnetwork/config/config.go
  2. 3 0
      libnetwork/config/config_test.go
  3. 2 2
      libnetwork/controller.go

+ 1 - 1
libnetwork/config/config.go

@@ -109,7 +109,7 @@ func (c *Config) ProcessOptions(options ...Option) {
 
 
 // IsValidName validates configuration objects supported by libnetwork
 // IsValidName validates configuration objects supported by libnetwork
 func IsValidName(name string) bool {
 func IsValidName(name string) bool {
-	if name == "" || strings.Contains(name, ".") {
+	if strings.TrimSpace(name) == "" || strings.Contains(name, ".") {
 		return false
 		return false
 	}
 	}
 	return true
 	return true

+ 3 - 0
libnetwork/config/config_test.go

@@ -49,6 +49,9 @@ func TestValidName(t *testing.T) {
 	if IsValidName("") {
 	if IsValidName("") {
 		t.Fatal("Name validation succeeds for a case when it is expected to fail")
 		t.Fatal("Name validation succeeds for a case when it is expected to fail")
 	}
 	}
+	if IsValidName("   ") {
+		t.Fatal("Name validation succeeds for a case when it is expected to fail")
+	}
 	if IsValidName("name.with.dots") {
 	if IsValidName("name.with.dots") {
 		t.Fatal("Name validation succeeds for a case when it is expected to fail")
 		t.Fatal("Name validation succeeds for a case when it is expected to fail")
 	}
 	}

+ 2 - 2
libnetwork/controller.go

@@ -218,11 +218,11 @@ func (c *controller) ConfigureNetworkDriver(networkType string, options map[stri
 }
 }
 
 
 func (c *controller) RegisterDriver(networkType string, driver driverapi.Driver, capability driverapi.Capability) error {
 func (c *controller) RegisterDriver(networkType string, driver driverapi.Driver, capability driverapi.Capability) error {
-	c.Lock()
 	if !config.IsValidName(networkType) {
 	if !config.IsValidName(networkType) {
-		c.Unlock()
 		return ErrInvalidName(networkType)
 		return ErrInvalidName(networkType)
 	}
 	}
+
+	c.Lock()
 	if _, ok := c.drivers[networkType]; ok {
 	if _, ok := c.drivers[networkType]; ok {
 		c.Unlock()
 		c.Unlock()
 		return driverapi.ErrActiveRegistration(networkType)
 		return driverapi.ErrActiveRegistration(networkType)