Revert "dirmngr: hkp: Avoid potential race condition when some hosts die."

This reverts commit 04b56eff11.

--

Now the access to hosttable is serialized correctly.
This commit is contained in:
NIIBE Yutaka 2018-09-11 14:04:37 +09:00
parent 995aded587
commit 69bab1cba0
1 changed files with 13 additions and 10 deletions

View File

@ -224,26 +224,29 @@ host_in_pool_p (hostinfo_t hi, int tblidx)
static int
select_random_host (hostinfo_t hi)
{
int *tbl = NULL;
size_t tblsize = 0;
int *tbl;
size_t tblsize;
int pidx, idx;
/* We create a new table so that we randomly select only from
currently alive hosts. */
for (idx = 0;
for (idx = 0, tblsize = 0;
idx < hi->pool_len && (pidx = hi->pool[idx]) != -1;
idx++)
if (hosttable[pidx] && !hosttable[pidx]->dead)
{
tblsize++;
tbl = xtryrealloc(tbl, tblsize * sizeof *tbl);
if (!tbl)
return -1; /* memory allocation failed! */
tbl[tblsize-1] = pidx;
}
tblsize++;
if (!tblsize)
return -1; /* No hosts. */
tbl = xtrymalloc (tblsize * sizeof *tbl);
if (!tbl)
return -1;
for (idx = 0, tblsize = 0;
idx < hi->pool_len && (pidx = hi->pool[idx]) != -1;
idx++)
if (hosttable[pidx] && !hosttable[pidx]->dead)
tbl[tblsize++] = pidx;
if (tblsize == 1) /* Save a get_uint_nonce. */
pidx = tbl[0];
else