Mercurial > kallithea
changeset 5395:74d5ae62bf74
db: better handling of decoding of changeset_cache values from the database
Do some validation of the data to prevent that incorrect data cause weird
failures when they are used later on.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Mon, 17 Aug 2015 01:11:42 +0200 |
parents | 0b9aadc314de |
children | e729c2f03ba7 |
files | kallithea/model/db.py |
diffstat | 1 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/model/db.py Thu Aug 13 15:29:59 2015 +0200 +++ b/kallithea/model/db.py Mon Aug 17 01:11:42 2015 +0200 @@ -1051,14 +1051,12 @@ @hybrid_property def changeset_cache(self): - from kallithea.lib.vcs.backends.base import EmptyChangeset - dummy = EmptyChangeset().__json__() - if not self._changeset_cache: - return dummy try: - return json.loads(self._changeset_cache) - except TypeError: - return dummy + cs_cache = json.loads(self._changeset_cache) # might raise on bad data + cs_cache['raw_id'] # verify data, raise exception on error + return cs_cache + except (TypeError, KeyError, ValueError): + return EmptyChangeset().__json__() @changeset_cache.setter def changeset_cache(self, val):