From 5315cd32757a1787e6f7faeb8128612ee4238163 Mon Sep 17 00:00:00 2001 From: Gordon Shumway Date: Sun, 12 Jul 2020 02:42:30 -0400 Subject: [PATCH] userAgents: avoid potential IndexError random.choice() should only be run after verifying the config has been set. --- src/conf.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/conf.py b/src/conf.py index 226d17d08..22110e537 100644 --- a/src/conf.py +++ b/src/conf.py @@ -1331,8 +1331,8 @@ def defaultHttpHeaders(network, channel): try: language = supybot.protocols.http.requestLanguage.getSpecific( network, channel)() - agent = random.choice(supybot.protocols.http.userAgents.getSpecific( - network, channel)()) + agent = supybot.protocols.http.userAgents.getSpecific( + network, channel)() except registry.NonExistentRegistryEntry: pass # Starting up; headers will be set by HttpRequestLanguage/UserAgents later else: @@ -1340,8 +1340,10 @@ def defaultHttpHeaders(network, channel): headers['Accept-Language'] = language elif 'Accept-Language' in headers: del headers['Accept-Language'] - if agent.strip(): - headers['User-agent'] = agent + if agent: + agent = random.choice(agent).strip() + if agent: + headers['User-agent'] = agent return headers class HttpRequestLanguage(registry.String):