Catching AttributeError versus redirecting it to UnsupportedOperation

This commit is contained in:
xorhex
2024-07-25 16:30:56 +03:00
committed by Eli
parent 75121cc658
commit a418ace3c5
+5 -8
View File
@@ -60,16 +60,13 @@ class QlOs:
# for the standard streams which usually do not support certain operations,
# such as fileno(). here we use this to determine how we are going to use
# the environment standard streams
# IDAPython returns True for stdin but False for stdout and stderr so checking
# all three
if not hasattr(sys.stdin, "fileno"):
raise UnsupportedOperation
if not hasattr(sys.stdout, "fileno"):
raise UnsupportedOperation
if not hasattr(sys.stderr, "fileno"):
raise UnsupportedOperation
except UnsupportedOperation:
sys.stdin.fileno()
sys.stdout.fileno()
sys.stderr.fileno()
except (UnsupportedOperation, AttributeError):
# Qiling is used on an interactive shell or embedded python interpreter.
# if the internal stream buffer is accessible, we should use it
self._stdin = getattr(sys.stdin, 'buffer', sys.stdin)