Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/changelog.py @ 1197:8deb69818e4b
Date validation must check for 32-bit width. Don't use assert to check.
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Sat, 03 Sep 2005 23:51:53 -0700 |
parents | 3738e85ead07 |
children | 71111d796e40 |
comparison
equal
deleted
inserted
replaced
1196:3738e85ead07 | 1197:8deb69818e4b |
---|---|
31 | 31 |
32 def add(self, manifest, list, desc, transaction, p1=None, p2=None, | 32 def add(self, manifest, list, desc, transaction, p1=None, p2=None, |
33 user=None, date=None): | 33 user=None, date=None): |
34 if date: | 34 if date: |
35 # validate explicit (probably user-specified) date and | 35 # validate explicit (probably user-specified) date and |
36 # time zone offset | 36 # time zone offset. values must fit in signed 32 bits for |
37 # current 32-bit linux runtimes. | |
37 when, offset = map(int, date.split(' ')) | 38 when, offset = map(int, date.split(' ')) |
38 time.localtime(when) | 39 if abs(when) > 0x7fffffff: |
39 assert abs(offset) < 43200, 'bad time zone offset: %d' % offset | 40 raise ValueError('date exceeds 32 bits: %d' % when) |
41 if abs(offset) >= 43200: | |
42 raise ValueError('impossible time zone offset: %d' % offset) | |
40 else: | 43 else: |
41 if time.daylight: offset = time.altzone | 44 if time.daylight: offset = time.altzone |
42 else: offset = time.timezone | 45 else: offset = time.timezone |
43 date = "%d %d" % (time.time(), offset) | 46 date = "%d %d" % (time.time(), offset) |
44 list.sort() | 47 list.sort() |