Bug 1434813 - Fix integer overflow of places.database.lastMaintenance in testing/profiles/prefs_general.js. r=glandium.

Bug 1383896 added this constant to testing/talos/talos/config.py:

> FAR_IN_FUTURE = 7258114800

which is used as the value for the "places.database.lastMaintenance" pref.
(7258114800 seconds after 1970 is the start of the year 2200.)

 libpref stores integers prefs as int32_t and the current parser doesn't detect
overflow. So this overflows to -1331819792. (I detected this with the new prefs
parser from bug 1423840, which does detect integer overflow.) As a result the
condition testing this pref in
toolkit/components/places/PlacesCategoriesStarter.js ends up always succeeding
in tests, which is the exact opposite of what was intended. This patch changes
it to 2147483647 (the year 2038), the maximum int32_t value.

(Note: this is much the same as bug 1424030, which was fixed recently.)

MozReview-Commit-ID: AQw4b8tmE9u
This commit is contained in:
Nicholas Nethercote 2018-02-01 15:40:32 +11:00
Родитель 19eedbc5e6
Коммит 7b9969bae5
1 изменённых файлов: 5 добавлений и 1 удалений

Просмотреть файл

@ -17,7 +17,11 @@ class ConfigurationError(Exception):
pass
FAR_IN_FUTURE = 7258114800
# Set places maintenance far in the future (the maximum time possible in an
# int32_t) to avoid it kicking in during tests. The maintenance can take a
# relatively long time which may cause unnecessary intermittents and slow
# things down. This, like many things, will stop working correctly in 2038.
FAR_IN_FUTURE = 2147483647
DEFAULTS = dict(
# args to pass to browser