浏览代码

cmd/dockerd: loadDaemonCliConfig() safeguard for unparsed flags

This function depends on flags having been parsed before it's used;
add a safety-net in case this function would be called before that.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 3 年之前
父节点
当前提交
fce7ebdaa5
共有 2 个文件被更改,包括 5 次插入0 次删除
  1. 3 0
      cmd/dockerd/daemon.go
  2. 2 0
      cmd/dockerd/daemon_test.go

+ 3 - 0
cmd/dockerd/daemon.go

@@ -384,6 +384,9 @@ func shutdownDaemon(d *daemon.Daemon) {
 }
 
 func loadDaemonCliConfig(opts *daemonOptions) (*config.Config, error) {
+	if !opts.flags.Parsed() {
+		return nil, errors.New(`cannot load CLI config before flags are parsed`)
+	}
 	opts.setDefaultOptions()
 
 	conf := opts.daemonConfig

+ 2 - 0
cmd/dockerd/daemon_test.go

@@ -22,6 +22,8 @@ func defaultOptions(t *testing.T, configFile string) *daemonOptions {
 	assert.NilError(t, err)
 	opts.flags.StringVar(&opts.configFile, "config-file", defaultDaemonConfigFile, "")
 	opts.configFile = configFile
+	err = opts.flags.Parse([]string{})
+	assert.NilError(t, err)
 	return opts
 }