summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2019-10-20 09:40:11 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-10-20 09:40:11 +0200
commit19f72110fc448e58dcd2d867d1db1fc547b790f2 (patch)
tree58260ab56756161fa8a2f1dff72b16804f31e719
parentd9a3c8974f9690e68d34a261bde58fb465750908 (diff)
downloademacs-19f72110fc448e58dcd2d867d1db1fc547b790f2.tar.gz
Protect against invalid punycode
* lisp/net/puny.el (puny-decode-string): Protect against invalid punycode.
-rw-r--r--lisp/net/puny.el5
1 files changed, 4 insertions, 1 deletions
diff --git a/lisp/net/puny.el b/lisp/net/puny.el
index 23c7af80619..729076ddbd7 100644
--- a/lisp/net/puny.el
+++ b/lisp/net/puny.el
@@ -63,7 +63,10 @@ For instance, \"xn--ff-2sa.org\" => \"fśf.org\"."
"Decode an IDNA/punycode-encoded string.
For instance \"xn--bcher-kva\" => \"bücher\"."
(if (string-match "\\`xn--" string)
- (puny-decode-string-internal (substring string 4))
+ (condition-case nil
+ (puny-decode-string-internal (substring string 4))
+ ;; If the string is invalid Punycode, just return the string.
+ (args-out-of-range string))
string))
(defconst puny-initial-n 128)