Do not mask *exec.ExitError

Fix #11764

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
(cherry picked from commit f468bbb7e8)

Docker-DCO-1.1-Signed-off-by: Jessie Frazelle <hugs@docker.com> (github: jfrazelle)

Docker-DCO-1.1-Signed-off-by: Jessie Frazelle <princess@docker.com> (github: jfrazelle)
This commit is contained in:
Alexander Morozov
2015-03-30 17:19:48 -07:00
committed by Jessica Frazelle
parent f1df74d09d
commit 542c84c2d2
+6 -7
View File
@@ -169,11 +169,11 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba
}
ps, err := waitF()
if err != nil {
if err, ok := err.(*exec.ExitError); !ok {
execErr, ok := err.(*exec.ExitError)
if !ok {
return execdriver.ExitStatus{ExitCode: -1}, err
} else {
ps = err.ProcessState
}
ps = execErr.ProcessState
}
cont.Destroy()
@@ -192,13 +192,12 @@ func waitInPIDHost(p *libcontainer.Process, c libcontainer.Container) func() (*o
process, err := os.FindProcess(pid)
s, err := process.Wait()
if err != nil {
if err, ok := err.(*exec.ExitError); !ok {
execErr, ok := err.(*exec.ExitError)
if !ok {
return s, err
} else {
s = err.ProcessState
}
s = execErr.ProcessState
}
processes, err := c.Processes()
if err != nil {
return s, err
}