summaryrefslogtreecommitdiffstats
path: root/ipapython
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2017-03-22 18:25:38 -0400
committerTomas Krizek <tkrizek@redhat.com>2017-03-28 13:36:30 +0200
commit9a6ac74eb4421b9ffa831dc6fed067d2ddc0618e (patch)
tree12cd9084295ae0e8d0fa08c1cf6486b448ed87e1 /ipapython
parentdc13703e75997e0c9539b326acb13458dae00202 (diff)
downloadfreeipa-9a6ac74eb4421b9ffa831dc6fed067d2ddc0618e.tar.gz
freeipa-9a6ac74eb4421b9ffa831dc6fed067d2ddc0618e.tar.xz
freeipa-9a6ac74eb4421b9ffa831dc6fed067d2ddc0618e.zip
Avoid growing FILE ccaches unnecessarily
Related https://pagure.io/freeipa/issue/6775 Signed-off-by: Simo Sorce <simo@redhat.com> Reviewed-By: Christian Heimes <cheimes@redhat.com> Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Diffstat (limited to 'ipapython')
-rw-r--r--ipapython/session_storage.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/ipapython/session_storage.py b/ipapython/session_storage.py
index bcf094733..f208827f0 100644
--- a/ipapython/session_storage.py
+++ b/ipapython/session_storage.py
@@ -111,6 +111,12 @@ def store_data(princ_name, key, value):
if not isinstance(value, bytes):
value = value.encode('utf-8')
+ # FILE ccaches grow every time an entry is stored, so we need
+ # to avoid storing the same entry multiple times.
+ oldvalue = get_data(princ_name, key)
+ if oldvalue == value:
+ return
+
context = krb5_context()
principal = krb5_principal()
ccache = krb5_ccache()