From 4c7a694409828cf34dd68f1e32042e916aa3972d Mon Sep 17 00:00:00 2001 From: Matt Bell Date: Mon, 1 Dec 2014 19:10:18 -0800 Subject: [PATCH] commands/http: Fixed client panic when sending a Request with nil 'Files' --- commands/http/client.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/commands/http/client.go b/commands/http/client.go index 3cbc41153..fa1c79fe8 100644 --- a/commands/http/client.go +++ b/commands/http/client.go @@ -48,14 +48,21 @@ func (c *client) Send(req cmds.Request) (cmds.Response, error) { } var fileReader *MultiFileReader + var reader io.Reader + if req.Files() != nil { fileReader = NewMultiFileReader(req.Files(), true) + reader = fileReader + } else { + // if we have no file data, use an empty Reader + // (http.NewRequest panics when a nil Reader is used) + reader = strings.NewReader("") } path := strings.Join(req.Path(), "/") url := fmt.Sprintf(ApiUrlFormat, c.serverAddress, ApiPath, path, query) - httpReq, err := http.NewRequest("POST", url, fileReader) + httpReq, err := http.NewRequest("POST", url, reader) if err != nil { return nil, err }