Stop spurious clang shallow analysis null pointer errors

Avoid 4 null pointer errors under clang shallow analysis (the default when
building under Xcode) by using tor_assert() to prove that the pointers
aren't null. Resolves issue 13284 via minor code refactoring.
This commit is contained in:
teor 2014-09-29 10:08:37 +10:00 committed by Nick Mathewson
parent 5190ec0bc4
commit ff8fe38a2f
4 changed files with 9 additions and 0 deletions

View file

@ -0,0 +1,3 @@
o Minor bugfixes:
- Avoid 4 null pointer errors under clang shallow analysis by using
tor_assert() to prove that the pointers aren't null. Fixes bug 13284.

View file

@ -1395,6 +1395,8 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
routerinfo_t *ri = node->ri;
const char *id = node->identity;
uint32_t bw_kb;
/* resolve spurious clang shallow analysis null pointer errors */
tor_assert(ri);
node->is_exit = (!router_exit_policy_rejects_all(ri) &&
exit_policy_is_general_exit(ri->exit_policy));
uptimes[n_active] = (uint32_t)real_uptime(ri, now);

View file

@ -647,6 +647,8 @@ dirvote_compute_params(smartlist_t *votes, int method, int total_authorities)
next_param = NULL;
else
next_param = smartlist_get(param_list, param_sl_idx+1);
/* resolve spurious clang shallow analysis null pointer errors */
tor_assert(param);
if (!next_param || strncmp(next_param, param, cur_param_len)) {
/* We've reached the end of a series. */
/* Make sure enough authorities voted on this param, unless the

View file

@ -475,6 +475,8 @@ trusted_dirs_remove_old_certs(void)
time_t cert_published;
if (newest == cert)
continue;
/* resolve spurious clang shallow analysis null pointer errors */
tor_assert(cert);
expired = now > cert->expires;
cert_published = cert->cache_info.published_on;
/* Store expired certs for 48 hours after a newer arrives;