mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 20:24:31 +00:00
virtiofsd: Fix file descriptors leak and return correct PID
This commit will fix two problems:
- Virtiofsd process ID returned to the caller will always be 0,
the pid var is never being assigned a value.
- Socket listen fd may leak in case of failure of starting virtiofsd process.
This is a port of be9ca0d58b
Fixes: #1931
Signed-off-by: bin <bin@hyper.sh>
This commit is contained in:
parent
35f297ad50
commit
773deca2f6
@ -75,6 +75,8 @@ func (v *virtiofsd) getSocketFD() (*os.File, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// no longer needed since fd is a dup
|
||||
defer listener.Close()
|
||||
|
||||
listener.SetUnlinkOnClose(false)
|
||||
@ -98,6 +100,7 @@ func (v *virtiofsd) Start(ctx context.Context) (int, error) {
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer socketFD.Close()
|
||||
|
||||
cmd.ExtraFiles = append(cmd.ExtraFiles, socketFD)
|
||||
|
||||
@ -128,7 +131,7 @@ func (v *virtiofsd) Start(ctx context.Context) (int, error) {
|
||||
v.wait = waitVirtiofsReady
|
||||
}
|
||||
|
||||
return pid, socketFD.Close()
|
||||
return cmd.Process.Pid, nil
|
||||
}
|
||||
|
||||
func (v *virtiofsd) Stop(ctx context.Context) error {
|
||||
|
Loading…
Reference in New Issue
Block a user