Creating a scalar ref directly off substr() seemed to be causing
the underlying non-ref scalar to end up in Perl's scratchpad.
Assign the substr result to a local variable seems sufficient to
prevent multi-megabyte SVs from lingering indefinitely when a
read-only daemon serves rare, oversized blobs.
---
lib/PublicInbox/Git.pm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index e634ca55..9d2c5f75 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -158,7 +158,8 @@ sub my_read ($$$) {
return; # unrecoverable error
}
}
- \substr($$rbuf, 0, $len, '');
+ my $no_pad = substr($$rbuf, 0, $len, '');
+ \$no_pad;
}
sub my_readline ($$) {
--
unsubscribe: one-click, see List-Unsubscribe header
archive: https://public-inbox.org/meta/