From 1f4682ce8ab3f6876d844a6f9fa67b88d8887f0e Mon Sep 17 00:00:00 2001 From: Ricky Ramirez Date: Thu, 14 Nov 2013 10:35:01 -0800 Subject: [PATCH] set_subreddit: Protect against IDNA encoding errors. --- r2/r2/controllers/reddit_base.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/r2/r2/controllers/reddit_base.py b/r2/r2/controllers/reddit_base.py index b2ac59c97..20064d7ca 100644 --- a/r2/r2/controllers/reddit_base.py +++ b/r2/r2/controllers/reddit_base.py @@ -392,9 +392,12 @@ def set_subreddit(): #if we didn't find a subreddit, check for a domain listing if not sr_name and isinstance(c.site, DefaultSR) and domain: # Redirect IDN to their IDNA name if necessary - idna = _force_unicode(domain).encode("idna") - if idna != domain: - redirect_to("/domain/%s%s" % (idna, request.environ["PATH_INFO"])) + try: + idna = _force_unicode(domain).encode("idna") + if idna != domain: + redirect_to("/domain/%s%s" % (idna, request.environ["PATH_INFO"])) + except UnicodeError: + domain = '' # Ensure valid_ascii_domain fails if not c.error_page and not valid_ascii_domain.match(domain): abort(404) c.site = DomainSR(domain)