diff --git a/lkddb/linux/browse_sources.py b/lkddb/linux/browse_sources.py index e7357ce..1ae7cef 100644 --- a/lkddb/linux/browse_sources.py +++ b/lkddb/linux/browse_sources.py @@ -182,7 +182,8 @@ def parse_struct(scanner, fields, line, dep, filename, ret=False): nparam = 0 for param in line: param = param.replace("\n", " ").strip() - if not param: + param = param.replace("\t", " ").strip() + if param == '': continue elif param[0] == ".": m = field_init_re.match(param) @@ -197,11 +198,13 @@ def parse_struct(scanner, fields, line, dep, filename, ret=False): raise lkddb.ParserError("in parse_line(): %s, %s, %s" % (filename, line, param)) res[field] = value else: + if nparam >= len(fields): + break try: res[fields[nparam]] = param except IndexError: - logger.exception("Index error: %s, %s, %s, %s" % - (scanner.name, fields, line, filename)) + logger.exception("Index error: %s, %s, %s, %s, %s" % + (scanner.name, nparam, fields, line, filename)) return {} nparam += 1 if res: diff --git a/lkddb/linux/scanners.py b/lkddb/linux/scanners.py index 366781d..427d74a 100644 --- a/lkddb/linux/scanners.py +++ b/lkddb/linux/scanners.py @@ -160,7 +160,7 @@ def extract_value(field, dictionary): return eval(val[val.find("=")+1:]) else: logger.error("error in extract_value: %s, %s --- '%s'" % (field, sorted(dictionary.items()), val)) - assert False, "error in extract_value, 1: %s, %s --- '%s'" % (field, sorted(dictionary.items()), val) + return 0 except NameError: logger.exception("error in extract_value: expected number in field %s from %s" % (field, dictionary))