Check content type along with content length

Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@docker.com> (github: crosbymichael)
This commit is contained in:
Michael Crosby 2014-08-01 15:59:19 -07:00
parent 78ac75fe00
commit 8266c381d6
1 changed files with 3 additions and 2 deletions

View File

@ -724,15 +724,16 @@ func postContainersStart(eng *engine.Engine, version version.Version, w http.Res
)
// allow a nil body for backwards compatibility
if r.Body != nil {
if r.Body != nil && r.ContentLength > 0 {
if !api.MatchesContentType(r.Header.Get("Content-Type"), "application/json") {
return fmt.Errorf("Content-Type is not supported: %s", r.Header.Get("Content-Type"))
return fmt.Errorf("Content-Type of application/json is required")
}
if err := job.DecodeEnv(r.Body); err != nil {
return err
}
}
if err := job.Run(); err != nil {
if err.Error() == "Container already started" {
w.WriteHeader(http.StatusNotModified)