about summary refs log tree commit homepage
path: root/lib/PublicInbox/Syscall.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-09-24 20:19:20 +0000
committerEric Wong <e@80x24.org>2023-09-24 23:14:20 +0000
commit1afb6f5133444bc53db047574d5142f85dfc2218 (patch)
tree3cb40ac3a069e76ee50dd90e508cb6d0431a0904 /lib/PublicInbox/Syscall.pm
parent9852f593c5e86ffad77b2558f5028fd8f13f2c21 (diff)
downloadpublic-inbox-1afb6f5133444bc53db047574d5142f85dfc2218.tar.gz
Handling this should be done at the lowest levels possible;
so away from higher-level lei code.
Diffstat (limited to 'lib/PublicInbox/Syscall.pm')
-rw-r--r--lib/PublicInbox/Syscall.pm5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/PublicInbox/Syscall.pm b/lib/PublicInbox/Syscall.pm
index 0a0912fb..776fbe23 100644
--- a/lib/PublicInbox/Syscall.pm
+++ b/lib/PublicInbox/Syscall.pm
@@ -444,7 +444,10 @@ no warnings 'once';
                         msg_controllen,
                         0); # msg_flags
         my $r = syscall($SYS_recvmsg, fileno($sock), $mh, 0);
-        return (undef) if $r < 0; # $! set
+        if ($r < 0) { # $! is set
+                $_[1] = '';
+                return (undef);
+        }
         substr($_[1], $r, length($_[1]), '');
         my @ret;
         if ($r > 0) {