diff options
| -rw-r--r-- | internal/pipewire/pipewire.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go index 8d7e751d..3025016b 100644 --- a/internal/pipewire/pipewire.go +++ b/internal/pipewire/pipewire.go @@ -271,16 +271,20 @@ func (ctx *Context) recvmsg(remaining []byte) (payload []byte, err error) { n, oobn, recvflags, err = ctx.conn.Recvmsg(ctx.iovecBuf[len(remaining):], ctx.oobBuf[:], recvmsgFlags) if oob := ctx.oobBuf[:oobn]; len(oob) > 0 { + var oobErr error + var scm []syscall.SocketControlMessage - if scm, err = syscall.ParseSocketControlMessage(oob); err != nil { + if scm, oobErr = syscall.ParseSocketControlMessage(oob); oobErr != nil { ctx.closeReceivedFiles() + err = oobErr return } var fds []int for i := range scm { - if fds, err = syscall.ParseUnixRights(&scm[i]); err != nil { + if fds, oobErr = syscall.ParseUnixRights(&scm[i]); oobErr != nil { ctx.closeReceivedFiles() + err = oobErr return } ctx.receivedFiles = append(ctx.receivedFiles, fds...) |
