summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2024-11-29 12:24:25 +0100
committerMarkus Heiser <markus.heiser@darmarIT.de>2024-11-29 14:20:31 +0100
commit540323a4b069cfe1c2d5e49fb6b3320691a7e974 (patch)
treefeca4016341c271c506fde17d9b5741f9708bb26
parentcf034488d5c07a8c5ea8008972c936f0d4457cac (diff)
downloadsearxng-540323a4b069cfe1c2d5e49fb6b3320691a7e974.tar.gz
searxng-540323a4b069cfe1c2d5e49fb6b3320691a7e974.zip
[mod] hardening xpath engine: ignore empty results
A SearXNG maintainer on Matrix reported a traceback:: File "searxng-src/searx/engines/xpath.py", line 272, in response dom = html.fromstring(resp.text) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "searx-pyenv/lib/python3.11/site-packages/lxml/html/__init__.py", line 850, in fromstring doc = document_fromstring(html, parser=parser, base_url=base_url, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "searx-pyenv/lib/python3.11/site-packages/lxml/html/__init__.py", line 738, in document_fromstring raise etree.ParserError( lxml.etree.ParserError: Document is empty I don't have an example to reproduce the issue, but the issue and this patch are clearly recognizable even without an example. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
-rw-r--r--searx/engines/xpath.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/searx/engines/xpath.py b/searx/engines/xpath.py
index 97c84bd09..90b551a33 100644
--- a/searx/engines/xpath.py
+++ b/searx/engines/xpath.py
@@ -269,6 +269,10 @@ def response(resp): # pylint: disable=too-many-branches
raise_for_httperror(resp)
results = []
+
+ if not resp.text:
+ return results
+
dom = html.fromstring(resp.text)
is_onion = 'onions' in categories