From a8c26e5370e3ac6dc5ad620d25794d964aae2abb Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 02:31:14 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=20Bolt:=20Optimize=20polymorphic=20ti?= =?UTF-8?q?meout=20validation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: ManupaKDU <95234271+ManupaKDU@users.noreply.github.com> --- plan.md | 8 ++++++++ testping1.py | 57 +++++++++++++++++++++++++++++----------------------- 2 files changed, 40 insertions(+), 25 deletions(-) create mode 100644 plan.md diff --git a/plan.md b/plan.md new file mode 100644 index 0000000..abf16d4 --- /dev/null +++ b/plan.md @@ -0,0 +1,8 @@ +1. **Optimize polymorphic timeout validation** + - In `testping1.py`, I will add a fast-path `if type(timeout) is int:` to bypass redundant string length checks and `try...except` block parsing on the hot-path when `timeout` is already an integer. +2. **Run tests** + - I will run `python3 -m unittest test_testping1.py` to ensure all functionality works as expected. +3. **Pre-commit step** + - I will use the `pre_commit_instructions` tool to run and verify all required pre-commit checks before submission. +4. **Submit PR** + - I will create a PR with the title "⚡ Bolt: [performance improvement]". diff --git a/testping1.py b/testping1.py index 013f0ae..f6c3628 100644 --- a/testping1.py +++ b/testping1.py @@ -100,33 +100,40 @@ def is_reachable(ip, timeout=1): logging.error(f"IP address not allowed for scanning: {safe_ip}") return False - # 🛡️ Sentinel: Prevent integer string conversion exhaustion (DoS) - # Reject massive integers before passing them to string formatting/repr() - if type(timeout) is int and (timeout < 0 or timeout > 100): - logging.error("Timeout integer out of range") - return False - - # 🛡️ Sentinel: Validate timeout length to prevent CPU exhaustion (DoS) - # Python's int() conversion for massive strings has O(N^2) complexity. - if isinstance(timeout, str) and len(timeout) > 100: - logging.error("Timeout string too long") - return False + # ⚡ Bolt: Fast-path for pre-instantiated integer timeout to avoid redundant string + # length checks and try...except parsing overhead on the hot-path. + if type(timeout) is int: + # 🛡️ Sentinel: Prevent integer string conversion exhaustion (DoS) + # Reject massive integers before passing them to string formatting/repr() + if timeout <= 0 or timeout > 100: + if timeout < 0 or timeout > 100: + logging.error("Timeout integer out of range") + else: + logging.error(f"Invalid timeout value: {timeout}") + return False + timeout_val = timeout + else: + # 🛡️ Sentinel: Validate timeout length to prevent CPU exhaustion (DoS) + # Python's int() conversion for massive strings has O(N^2) complexity. + if isinstance(timeout, str) and len(timeout) > 100: + logging.error("Timeout string too long") + return False - try: - timeout_val = int(timeout) - if timeout_val <= 0 or timeout_val > 100: - raise ValueError("Timeout must be a positive integer <= 100") - except (ValueError, TypeError, OverflowError): - # 🛡️ Sentinel: Catch OverflowError alongside ValueError/TypeError - # Inputs originating from JSON can include Infinity (parsed as float) - # which raises OverflowError when cast to int and crashes threads. - # 🛡️ Sentinel: Sanitize log input to prevent CRLF/Log Injection try: - safe_timeout = repr(timeout) - except ValueError: - safe_timeout = "" - logging.error(f"Invalid timeout value: {safe_timeout}") - return False + timeout_val = int(timeout) + if timeout_val <= 0 or timeout_val > 100: + raise ValueError("Timeout must be a positive integer <= 100") + except (ValueError, TypeError, OverflowError): + # 🛡️ Sentinel: Catch OverflowError alongside ValueError/TypeError + # Inputs originating from JSON can include Infinity (parsed as float) + # which raises OverflowError when cast to int and crashes threads. + # 🛡️ Sentinel: Sanitize log input to prevent CRLF/Log Injection + try: + safe_timeout = repr(timeout) + except ValueError: + safe_timeout = "" + logging.error(f"Invalid timeout value: {safe_timeout}") + return False # ⚡ Bolt: Optimized ping execution by adding `-n` and `-q` flags. # The `-n` flag skips reverse DNS resolution. Without it, ping attempts to