mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Fix a bug in microdescs_add_to_cache when listed_at == -1
This bug affects hosts where time_t is unsigned, which AFAICT does not include anything we currently support. (It _does_ include OpenVMS, about a month of BSD4.2's history[1], and a lot of the 1970s.) There are probably more bugs when time_t is unsigned. This one was [1] http://mail-index.netbsd.org/tech-userlevel/1998/06/04/0000.html
This commit is contained in:
parent
2f98bf5c9f
commit
012068935a
@ -1,3 +1,9 @@
|
|||||||
|
o Minor bugfixes (portability):
|
||||||
|
- On the chance that somebody manages to build Tor on a
|
||||||
|
platform where time_t is unsigned, correct the way that
|
||||||
|
microdesc_add_to_cache handles negative time arguments. Fix for
|
||||||
|
bug 8042; bugfix on 0.2.3.1-alpha.
|
||||||
|
|
||||||
o Build improvements:
|
o Build improvements:
|
||||||
- Warn if building on a platform with an unsigned time_t: there
|
- Warn if building on a platform with an unsigned time_t: there
|
||||||
are too many places where Tor currently assumes that time_t can
|
are too many places where Tor currently assumes that time_t can
|
||||||
|
@ -135,7 +135,7 @@ get_microdesc_cache(void)
|
|||||||
* ending at <b>eos</b>, and store them in <b>cache</b>. If <b>no_save</b>,
|
* ending at <b>eos</b>, and store them in <b>cache</b>. If <b>no_save</b>,
|
||||||
* mark them as non-writable to disk. If <b>where</b> is SAVED_IN_CACHE,
|
* mark them as non-writable to disk. If <b>where</b> is SAVED_IN_CACHE,
|
||||||
* leave their bodies as pointers to the mmap'd cache. If where is
|
* leave their bodies as pointers to the mmap'd cache. If where is
|
||||||
* <b>SAVED_NOWHERE</b>, do not allow annotations. If listed_at is positive,
|
* <b>SAVED_NOWHERE</b>, do not allow annotations. If listed_at is not -1,
|
||||||
* set the last_listed field of every microdesc to listed_at. If
|
* set the last_listed field of every microdesc to listed_at. If
|
||||||
* requested_digests is non-null, then it contains a list of digests we mean
|
* requested_digests is non-null, then it contains a list of digests we mean
|
||||||
* to allow, so we should reject any non-requested microdesc with a different
|
* to allow, so we should reject any non-requested microdesc with a different
|
||||||
@ -155,7 +155,7 @@ microdescs_add_to_cache(microdesc_cache_t *cache,
|
|||||||
descriptors = microdescs_parse_from_string(s, eos,
|
descriptors = microdescs_parse_from_string(s, eos,
|
||||||
allow_annotations,
|
allow_annotations,
|
||||||
copy_body);
|
copy_body);
|
||||||
if (listed_at > 0) {
|
if (listed_at != (time_t)-1) {
|
||||||
SMARTLIST_FOREACH(descriptors, microdesc_t *, md,
|
SMARTLIST_FOREACH(descriptors, microdesc_t *, md,
|
||||||
md->last_listed = listed_at);
|
md->last_listed = listed_at);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user