Don’t crash when the config file is malformed.

This commit is contained in:
Emmanuel Gil Peyrot 2015-03-26 20:58:51 +01:00
parent 512840944b
commit 9adba6c5f7
1 changed files with 8 additions and 1 deletions

View File

@ -38,6 +38,9 @@ from common import caps_cache
import sqlite3 as sqlite import sqlite3 as sqlite
from common import logger from common import logger
import logging
log = logging.getLogger('gajim.c.optparser')
class OptionsParser: class OptionsParser:
def __init__(self, filename): def __init__(self, filename):
self.__filename = filename self.__filename = filename
@ -60,7 +63,11 @@ class OptionsParser:
regex = re.compile(r"(?P<optname>[^.=]+)(?:(?:\.(?P<key>.+))?\.(?P<subname>[^.=]+))?\s=\s(?P<value>.*)") regex = re.compile(r"(?P<optname>[^.=]+)(?:(?:\.(?P<key>.+))?\.(?P<subname>[^.=]+))?\s=\s(?P<value>.*)")
for line in fd: for line in fd:
optname, key, subname, value = regex.match(line).groups() match = regex.match(line)
if match is None:
log.warn('Invalid configuration line, ignoring it: %s', line)
continue
optname, key, subname, value = match.groups()
if key is None: if key is None:
self.old_values[optname] = value self.old_values[optname] = value
gajim.config.set(optname, value) gajim.config.set(optname, value)