diff options
author | Martin Basti <mbasti@redhat.com> | 2017-01-11 17:24:16 +0100 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2017-01-31 18:33:27 +0100 |
commit | 35e135c4e3a7f0bf21ed4c838b8f76b43701a047 (patch) | |
tree | 42ec2bb5f8a62f155b58b591b009911ea25bef6d /ipaserver | |
parent | 7e8eb533752bbf5e2f05ec6bfb0ffefa8e9dcddf (diff) | |
download | freeipa-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.py | 11 |
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) |