From eed390dbe7c19ea94fac71545fdd7d6933360f85 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Tue, 10 Mar 2020 13:53:51 -0400
Subject: [PATCH] Probably need to open the file in binary mode

---
 src/_zkapauthorizer/_storage_server.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/_zkapauthorizer/_storage_server.py b/src/_zkapauthorizer/_storage_server.py
index ddefca3..8c83282 100644
--- a/src/_zkapauthorizer/_storage_server.py
+++ b/src/_zkapauthorizer/_storage_server.py
@@ -512,7 +512,7 @@ def get_storage_index_share_size(sharepath):
     # share data is structured.  A lot of this seems to be wrong.
     # storage/immutable.py appears to have the correct information.
     fmt = ">LL"
-    with open(sharepath) as share_file:
+    with open(sharepath, "rb") as share_file:
         header = share_file.read(calcsize(fmt))
 
     if len(header) != calcsize(fmt):
@@ -570,7 +570,7 @@ def get_slot_share_size(sharepath):
 
     :return int: The data size of the share in bytes.
     """
-    with open(sharepath) as share_file:
+    with open(sharepath, "rb") as share_file:
         share_data_length_bytes = share_file.read(92)[-8:]
         (share_data_length,) = unpack('>Q', share_data_length_bytes)
         return share_data_length
@@ -598,7 +598,7 @@ def get_stat(sharepath):
     This is necessary to differentiate between buckets and slots.
     """
     # Figure out if it is a storage index or a slot.
-    with open(sharepath) as share_file:
+    with open(sharepath, "rb") as share_file:
         magic = share_file.read(32)
         if magic == "Tahoe mutable container v1\n" + "\x75\x09\x44\x03\x8e":
             return stat_slot
-- 
GitLab