summaryrefslogtreecommitdiffstats
path: root/ipaserver
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2017-01-11 17:24:16 +0100
committerMartin Basti <mbasti@redhat.com>2017-01-31 18:33:27 +0100
commit35e135c4e3a7f0bf21ed4c838b8f76b43701a047 (patch)
tree42ec2bb5f8a62f155b58b591b009911ea25bef6d /ipaserver
parent7e8eb533752bbf5e2f05ec6bfb0ffefa8e9dcddf (diff)
downloadfreeipa-35e135c4e3a7f0bf21ed4c838b8f76b43701a047.tar.gz
freeipa-35e135c4e3a7f0bf21ed4c838b8f76b43701a047.tar.xz
freeipa-35e135c4e3a7f0bf21ed4c838b8f76b43701a047.zip
py3: session: fix r/w ccache data
ccache contains binary data, so it should be read and write in binary mode https://fedorahosted.org/freeipa/ticket/4985 Reviewed-By: Christian Heimes <cheimes@redhat.com>
Diffstat (limited to 'ipaserver')
-rw-r--r--ipaserver/session.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/ipaserver/session.py b/ipaserver/session.py
index 020dcc19a..0f3a9ad58 100644
--- a/ipaserver/session.py
+++ b/ipaserver/session.py
@@ -21,6 +21,7 @@ import random
import os
import re
import time
+import io
# pylint: disable=import-error
from six.moves.urllib.parse import urlparse
@@ -1228,9 +1229,8 @@ def load_ccache_data(ccache_name):
scheme, name = krb5_parse_ccache(ccache_name)
if scheme == 'FILE':
root_logger.debug('reading ccache data from file "%s"', name)
- src = open(name)
- ccache_data = src.read()
- src.close()
+ with io.open(name, "rb") as src:
+ ccache_data = src.read()
return ccache_data
else:
raise ValueError('ccache scheme "%s" unsupported (%s)', scheme, ccache_name)
@@ -1239,9 +1239,8 @@ def bind_ipa_ccache(ccache_data, scheme='FILE'):
if scheme == 'FILE':
name = _get_krbccache_pathname()
root_logger.debug('storing ccache data into file "%s"', name)
- dst = open(name, 'w')
- dst.write(ccache_data)
- dst.close()
+ with io.open(name, 'wb') as dst:
+ dst.write(ccache_data)
else:
raise ValueError('ccache scheme "%s" unsupported', scheme)