From 09139a3638812ef8ee7f766010729d75ceabad07 Mon Sep 17 00:00:00 2001
From: Malfurious <m@lfurio.us>
Date: Wed, 15 Dec 2021 21:20:44 -0500
Subject: sploit: Ensure the logonread option is restored by Comm.readuntil()

This function has a momentary side-effect of switching self.logonread to
False.  This patch ensures its original value is always restored, even
if an exception is raised.

Signed-off-by: Malfurious <m@lfurio.us>
Signed-off-by: dusoleil <howcansocksbereal@gmail.com>
---
 tools/sploit/sploit/comm.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

(limited to 'tools/sploit')

diff --git a/tools/sploit/sploit/comm.py b/tools/sploit/sploit/comm.py
index 0bc8c6a..afa14e8 100644
--- a/tools/sploit/sploit/comm.py
+++ b/tools/sploit/sploit/comm.py
@@ -41,11 +41,13 @@ class Comm:
         pred = bind(pred, *args, **kwargs)
         l = self.logonread
         self.logonread = False
-        while(True):
-            data += self.read(1)
-            if(pred(data)):
-                break
-        self.logonread = l
+        try:
+            while(True):
+                data += self.read(1)
+                if(pred(data)):
+                    break
+        finally:
+            self.logonread = l
         if self.logonread : ilog(data, file=sys.stdout, color=NORMAL)
         return data
 
-- 
cgit v1.2.3