From 553e81f888160edf9c135f1238368884aab85bc0 Mon Sep 17 00:00:00 2001 From: Aaron Tan Date: Tue, 24 Oct 2017 12:08:41 -0400 Subject: [PATCH] Add protection against credential getattr Relates #474. Add protection in `__getattr__` method to prevent possible infinite recursion loop. Signed-off-by: Aaron Tan --- awx/main/models/credential.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/awx/main/models/credential.py b/awx/main/models/credential.py index 5a3f0b9662..180085fbc0 100644 --- a/awx/main/models/credential.py +++ b/awx/main/models/credential.py @@ -249,10 +249,11 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique, ResourceMixin): ]) def __getattr__(self, item): - if item in V1Credential.FIELDS: - return self.inputs.get(item, V1Credential.FIELDS[item].default) - elif item in self.inputs: - return self.inputs[item] + if item != 'inputs': + if item in V1Credential.FIELDS: + return self.inputs.get(item, V1Credential.FIELDS[item].default) + elif item in self.inputs: + return self.inputs[item] raise AttributeError(item) def __setattr__(self, item, value):