mirror of
https://github.com/containers/podman.git
synced 2025-06-26 21:07:02 +08:00
oci: check for valid PID before kill(pid, 0)
check that the container has a valid pid before attempting to use kill($PID, 0) on it. If the PID==0, it means the container is already stopped. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
@ -429,6 +429,10 @@ func (r *ConmonOCIRuntime) StopContainer(ctr *Container, timeout uint, all bool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err := r.KillContainer(ctr, uint(unix.SIGKILL), all); err != nil {
|
if err := r.KillContainer(ctr, uint(unix.SIGKILL), all); err != nil {
|
||||||
|
// If the PID is 0, then the container is already stopped.
|
||||||
|
if ctr.state.PID == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
// Again, check if the container is gone. If it is, exit cleanly.
|
// Again, check if the container is gone. If it is, exit cleanly.
|
||||||
if aliveErr := unix.Kill(ctr.state.PID, 0); errors.Is(aliveErr, unix.ESRCH) {
|
if aliveErr := unix.Kill(ctr.state.PID, 0); errors.Is(aliveErr, unix.ESRCH) {
|
||||||
return nil
|
return nil
|
||||||
|
Reference in New Issue
Block a user