# [PATCH] cvsserver: Avoid miscounting bytes in Perl v5.8.x

2 messages from 2006-12-07 to 2006-12-07. Participants: Martin Langhoff, Junio C Hamano.
Thread: https://gitlist.dev/t/43748

## Martin Langhoff, 2006-12-07 03:38

Subject: [PATCH] cvsserver: Avoid miscounting bytes in Perl v5.8.x
Message-ID: <11654627303222-git-send-email-martin@catalyst.net.nz>
URL: https://gitlist.dev/e/11654627303222-git-send-email-martin%40catalyst.net.nz

```
At some point between v5.6 and 5.8 Perl started to assume its input,
output and filehandles are UTF-8. This breaks the counting of bytes
for the CVS protocol, resulting in the client expecting less data
than we actually send, and storing truncated files.

Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
---

This has gone unfixed for quite a while. I thought I had seen
a patch posted addressing it, but it may have been for something else.

In fact, our heavily patched gitweb.cgi has needed a similar patch
as well. Snapshot downloads were getting corrupted until we added
use bytes; there too. I'm not sure how current gitweb does it though...

---
 git-cvsserver.perl |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/git-cvsserver.perl b/git-cvsserver.perl
index ca519b7..197014d 100755
--- a/git-cvsserver.perl
+++ b/git-cvsserver.perl
@@ -17,6 +17,7 @@
 
 use strict;
 use warnings;
+use bytes;
 
 use Fcntl;
 use File::Temp qw/tempdir tempfile/;
-- 
1.4.4.1.g7923a

```

## Junio C Hamano, 2006-12-07 05:48

Subject: Re: [PATCH] cvsserver: Avoid miscounting bytes in Perl v5.8.x
Message-ID: <7v1wncw92g.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v1wncw92g.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <11654627303222-git-send-email-martin@catalyst.net.nz>

```
Martin Langhoff <martin@catalyst.net.nz> writes:

> At some point between v5.6 and 5.8 Perl started to assume its input,
> output and filehandles are UTF-8. This breaks the counting of bytes
> for the CVS protocol, resulting in the client expecting less data
> than we actually send, and storing truncated files.

Thanks.  Will queue for both maint and master.

```
