diff --git a/src/opnsense/service/modules/template.py b/src/opnsense/service/modules/template.py index 02dcb1c35..153604763 100644 --- a/src/opnsense/service/modules/template.py +++ b/src/opnsense/service/modules/template.py @@ -67,8 +67,13 @@ class Template(object): def _encode_idna(x): """ encode string to idna, preserve leading dots """ - tmp = b''.join([b''.join([b'.' for x in range(len(x) - len(x.lstrip('.')))]), x.lstrip('.').encode('idna')]) - return tmp.decode() + try: + tmp = b''.join([b''.join([b'.' for x in range(len(x) - len(x.lstrip('.')))]), x.lstrip('.').encode('idna')]) + return tmp.decode() + except UnicodeError: + # return source when unable to decode + syslog.syslog(syslog.LOG_NOTICE, "encode idna: unable to decode %s, return source" % x) + return x def list_module(self, module_name): """ list single module content