mirror of
https://github.com/qilingframework/qiling.git
synced 2026-10-12 02:21:40 +00:00
Catching AttributeError versus redirecting it to UnsupportedOperation
This commit is contained in:
+5
-8
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user