| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation we added has a tendency to crash with lists of 0 or
one element. That can happen if we get a consensus vote, v2
consensus, consensus, or geoip file with 0 or 1 element. There's a
DOS opportunity there that authorities could exploit against one
another, and which an evil v2 authority could exploit against anything
downloading v2 directory information..
This fix is minimalistic: It just adds a special-case for 0- and
1-element lists. For 0.2.4 (the current alpha series) we'll want a
better patch.
This is bug 7191; it's a fix on 0.2.0.10-alpha.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
The old behavior was susceptible to the compiler optimizing out our
assertion check, *and* could still overflow size_t on 32-bit systems
even when it did work.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
This was harmless, since we only used this for checking for lists of
port values, but it's the principle of the thing.
Fixes 3175; bugfix on 0.1.0.1-rc
|
| |
| |
| |
| | |
We'll use this to detect changes in CSV options.
|
| |
| |
| |
| | |
snuck in
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
bug3122_memcmp_022
Conflicts throughout. All resolved in favor of taking HEAD and
adding tor_mem* or fast_mem* ops as appropriate.
src/common/Makefile.am
src/or/circuitbuild.c
src/or/directory.c
src/or/dirserv.c
src/or/dirvote.c
src/or/networkstatus.c
src/or/rendclient.c
src/or/rendservice.c
src/or/router.c
src/or/routerlist.c
src/or/routerparse.c
src/or/test.c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Here I looked at the results of the automated conversion and cleaned
them up as follows:
If there was a tor_memcmp or tor_memeq that was in fact "safe"[*] I
changed it to a fast_memcmp or fast_memeq.
Otherwise if there was a tor_memcmp that could turn into a
tor_memneq or tor_memeq, I converted it.
This wants close attention.
[*] I'm erring on the side of caution here, and leaving some things
as tor_memcmp that could in my opinion use the data-dependent
fast_memcmp variant.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit is _exactly_ the result of
perl -i -pe 's/\bmemcmp\(/tor_memcmp\(/g' src/*/*.[ch]
perl -i -pe 's/\!\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch]
perl -i -pe 's/0\s*==\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch]
perl -i -pe 's/0\s*!=\s*tor_memcmp\(/tor_memneq\(/g' src/*/*.[ch]
git checkout src/common/di_ops.[ch]
git checkout src/or/test.c
git checkout src/common/test.h
|
| |
| |
| |
| | |
About 860 doxygen-less things remain in 0.2.2
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
src/common/test.h
src/or/test.c
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This should make us conflict less with system files named "log.h".
Yes, we shouldn't have been conflicting with those anyway, but some
people's compilers act very oddly.
The actual change was done with one "git mv", by editing
Makefile.am, and running
find . -name '*.[ch]' | xargs perl -i -pe 'if (/^#include.*\Wlog.h/) {s/log.h/torlog.h/; }'
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
src/common/test.h
src/or/test.c
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This changes the pqueue API by requiring an additional int in every
structure that we store in a pqueue to hold the index of that structure
within the heap.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some *_free functions threw asserts when passed NULL. Now all of them
accept NULL as input and perform no action when called that way.
This gains us consistence for our free functions, and allows some
code simplifications where an explicit null check is no longer necessary.
|
| |
| |
| |
| |
| | |
One was a simple buffer overrun; the other was a high-speed pointer
collision. Both were introduced by my microdescs branch.
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
| |
parsing mismatches on different platforms.
svn:r18189
|
|
|
|
|
|
|
|
| |
The subversion $Id$ fields made every commit force a rebuild of
whatever file got committed. They were not actually useful for
telling the version of Tor files in the wild.
svn:r17867
|
|
|
|
| |
svn:r17785
|
|
|
|
|
|
| |
documentation: Don't introduce two parameters called n when you're calling an algorithm O(n).
svn:r17783
|
|
|
|
| |
svn:r17734
|
|
|
|
|
|
| |
comments so that they will get recognized as doxygen.
svn:r17729
|
|
|
|
|
|
| |
needlessly prissy; it was hinting at the wrongly pure smartlist_bsearch_idx.
svn:r17396
|
|
|
|
| |
svn:r17357
|
|
|
|
|
|
|
|
| |
identity fingerprints, so it's easier to paste them in.
Suggested by Lucky Green.
svn:r17021
|
|
|
|
| |
svn:r16782
|
|
|
|
|
|
|
| |
it does work for tas after all.
svn:r16724
|
|
|
|
|
|
|
| |
Reported by Tas.
svn:r16713
|
|
|
|
|
|
|
| |
The optimist calls the glass half full. The pessimist calls it half empty. The engineer says it is twice as large as it needs to be. In this case, the engineer says that the default smartlist size is twice as large as it needs to be and wouldn't it be nice to save half a megabyte with a one-line patch?
svn:r14341
|
|
|
|
|
|
|
| |
When we remove old routers, use Bloom filters rather than a digestmap-based set in order to tell which ones we absolutely need to keep. This will save us roughly a kazillion little short-lived allocations for hash table entries.
svn:r14318
|
|
|
|
|
|
|
| |
Remove redundant check from container.c that gcc 4.2 didnt like
svn:r13668
|
|
|
|
|
|
|
| |
Fix a spelling error and clean up a recent veracode-induced integer overflow check. Both spotted by Chris Palmer.
svn:r13639
|
|
|
|
|
|
|
| |
Add a few asserts to catch possible errors found by veracode.
svn:r13598
|
|
|
|
|
|
|
| |
Chris Palmer notes that almost nobody is using smartlist_set_capacity(). Chris Palmer is right. Remove this basically pointless function.
svn:r13596
|
|
|
|
|
|
|
| |
Add some checks in torgzip.c to make sure we never overflow size_t there. Also make sure we do not realloc(list,0) in container.c. Backport candidate.
svn:r13587
|
|
|
|
| |
svn:r13412
|
|
|
|
| |
svn:r13403
|
|
|
|
|
|
|
| |
Remove some dead code.
svn:r13053
|
|
|
|
| |
svn:r12786
|
|
|
|
|
|
|
| |
Mess with the formula for the Guard flag again. Now it requires that you be in the most familiar 7/8 of nodes, and have above median wfu for that 7/8th. See spec for details. Also, log thresholds better.
svn:r12440
|
|
|
|
|
|
|
| |
Add a smartlist_bsearch_idx function that gives more useful output than regular bsearch for the value-not-found case.
svn:r12360
|
|
|
|
|
|
|
| |
Change meaning of "freefn" argument to smartlist_uniq so that we can remove duplicates from a list without freeing them.
svn:r12053
|