Fix errors detected by valgrind

I tried running chronyd in valgrind and the result was that there are four
places where memory is not initialized. A patch fixing the errors is in the
attachment.
This commit is contained in:
Miroslav Lichvar 2008-11-05 23:48:58 +00:00 committed by Richard P. Curnow
parent bc0aaa9217
commit 8336f14680
3 changed files with 12 additions and 3 deletions

View file

@ -166,7 +166,7 @@ CAM_Initialise(void)
int port_number; int port_number;
struct sockaddr_in my_addr; struct sockaddr_in my_addr;
unsigned long bind_address; unsigned long bind_address;
int on_off; int on_off = 1;
if (initialised) { if (initialised) {
CROAK("Shouldn't be initialised"); CROAK("Shouldn't be initialised");
@ -1631,11 +1631,13 @@ read_from_cmd_socket(void *anything)
tx_message.reply = htons(RPY_NULL); tx_message.reply = htons(RPY_NULL);
tx_message.number = htons(1); tx_message.number = htons(1);
tx_message.total = htons(1); tx_message.total = htons(1);
tx_message.pad1 = 0;
tx_message.utoken = htonl(utoken); tx_message.utoken = htonl(utoken);
/* Set this to a default (invalid) value. This protects against the /* Set this to a default (invalid) value. This protects against the
token field being set to an arbitrary value if we reject the token field being set to an arbitrary value if we reject the
message, e.g. due to the host failing the access check. */ message, e.g. due to the host failing the access check. */
tx_message.token = htonl(0xffffffffUL); tx_message.token = htonl(0xffffffffUL);
memset(&tx_message.auth, 0, sizeof(tx_message.auth));
remote_ip = ntohl(where_from.sin_addr.s_addr); remote_ip = ntohl(where_from.sin_addr.s_addr);
remote_port = ntohs(where_from.sin_port); remote_port = ntohs(where_from.sin_port);

View file

@ -300,6 +300,9 @@ create_instance(NTP_Remote_Address *remote_addr, NTP_Mode mode, SourceParameters
result->tx_count = 0; result->tx_count = 0;
result->remote_orig.hi = 0;
result->remote_orig.lo = 0;
result->score = 0; result->score = 0;
if (params->online) { if (params->online) {

View file

@ -721,8 +721,12 @@ SST_PredictOffset(SST_Stats inst, struct timeval *when)
if (inst->n_samples < 3) { if (inst->n_samples < 3) {
/* We don't have any useful statistics, and presumably the poll /* We don't have any useful statistics, and presumably the poll
interval is minimal. We can't do any useful prediction other interval is minimal. We can't do any useful prediction other
than use the latest sample */ than use the latest sample or zero if we don't have any samples */
return inst->offsets[inst->n_samples - 1]; if (inst->n_samples > 0) {
return inst->offsets[inst->n_samples - 1];
} else {
return 0.0;
}
} else { } else {
UTI_DiffTimevalsToDouble(&elapsed, when, &inst->offset_time); UTI_DiffTimevalsToDouble(&elapsed, when, &inst->offset_time);
return inst->estimated_offset + elapsed * inst->estimated_frequency; return inst->estimated_offset + elapsed * inst->estimated_frequency;