aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-12-09 06:02:15 +0900
committerOphestra <cat@gensokyo.uk>2025-12-09 06:02:15 +0900
commit5ec4045e248c19cd02ec76d52c21015acc5e2831 (patch)
tree768cc0ec2caec2ab6c88244603527f9e5abe6494
parentbe2075f1693e4c4eff4975537a6c490467a61d79 (diff)
internal/pipewire: do not clobber error parsing SCMs
The error is handled later, clobbering it here breaks error handling when SCMs are present. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/pipewire/pipewire.go8
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...)