good for merge regards -steve On Thu, 2010-04-22 at 18:14 +0200, Jan Friesse wrote: > Attached patch handles some (mostly minor) problems shown by valgrind. > > - First is memset in res_setup (coroipcs). This is done only once per > connection, so slowdown is minimal > - Two memset in logsys. This is done only once per corosync run > - Problem in corosync_totem_stats_updater where avg_token_holdtime has > sizeof avg_backlog_calc (sizes are same so it really doesn't matter) > - corosync_totem_stats_init - avg_backlog_calc is 32 bits > - objdb problem if new_valie_len != object->value_len. In such case > newly allocated memory is not initialized and in some situations, > value_len is not updated. > > Regards, > Honza > plain text document attachment (2010-04-22-valgrind-errors.patch) > diff --git a/trunk/exec/coroipcs.c b/trunk/exec/coroipcs.c > index a64343d..9394f21 100644 > --- a/trunk/exec/coroipcs.c > +++ b/trunk/exec/coroipcs.c > @@ -727,6 +727,7 @@ req_setup_send ( > mar_res_setup_t res_setup; > unsigned int res; > > + memset (&res_setup, 0, sizeof (res_setup)); > res_setup.error = error; > > retry_send: > diff --git a/trunk/exec/logsys.c b/trunk/exec/logsys.c > index c214350..f649e5f 100644 > --- a/trunk/exec/logsys.c > +++ b/trunk/exec/logsys.c > @@ -731,6 +731,8 @@ static void *logsys_worker_thread (void *data) > int log_msg; > char buf[COMBINE_BUFFER_SIZE]; > > + memset (buf, 0, sizeof (buf)); > + > /* > * Signal wthread_create that the initialization process may continue > */ > @@ -1111,6 +1113,7 @@ int _logsys_rec_init (unsigned int fltsize) > return (-1); > } > > + memset (flt_data, 0, flt_real_size); > /* > * flt_data_size tracks data by ints and not bytes/chars. > * > diff --git a/trunk/exec/main.c b/trunk/exec/main.c > index 0b7982a..c8fda30 100644 > --- a/trunk/exec/main.c > +++ b/trunk/exec/main.c > @@ -655,13 +655,12 @@ static void corosync_totem_stats_updater (void *data) > mtt_rx_token = (total_mtt_rx_token / token_count); > avg_backlog_calc = (total_backlog_calc / token_count); > avg_token_holdtime = (total_token_holdtime / token_count); > - > objdb->object_key_replace (stats->mrp->srp->hdr.handle, > "mtt_rx_token", strlen("mtt_rx_token"), > &mtt_rx_token, sizeof (mtt_rx_token)); > objdb->object_key_replace (stats->mrp->srp->hdr.handle, > "avg_token_workload", strlen("avg_token_workload"), > - &avg_token_holdtime, sizeof (avg_backlog_calc)); > + &avg_token_holdtime, sizeof (avg_token_holdtime)); > objdb->object_key_replace (stats->mrp->srp->hdr.handle, > "avg_backlog_calc", strlen("avg_backlog_calc"), > &avg_backlog_calc, sizeof (avg_backlog_calc)); > @@ -782,8 +781,8 @@ static void corosync_totem_stats_init (void) > "avg_token_workload", &zero_32, > sizeof (zero_32), OBJDB_VALUETYPE_UINT32); > objdb->object_key_create_typed (stats->mrp->srp->hdr.handle, > - "avg_backlog_calc", &zero_64, > - sizeof (zero_64), OBJDB_VALUETYPE_UINT64); > + "avg_backlog_calc", &zero_32, > + sizeof (zero_32), OBJDB_VALUETYPE_UINT32); > objdb->object_key_create_typed (stats->mrp->srp->hdr.handle, > "rx_msg_dropped", &zero_64, > sizeof (zero_64), OBJDB_VALUETYPE_UINT64); > diff --git a/trunk/exec/objdb.c b/trunk/exec/objdb.c > index e26ff14..8dc34c5 100644 > --- a/trunk/exec/objdb.c > +++ b/trunk/exec/objdb.c > @@ -1316,6 +1316,8 @@ static int object_key_replace ( > goto error_exit; > free(object_key->value); > object_key->value = replacement_value; > + memset (object_key->value, 0, new_value_len); > + object_key->value_len = new_value_len; > } > if (memcmp (object_key->value, new_value, new_value_len) == 0) { > value_changed = 0; > _______________________________________________ > Openais mailing list > Openais@lists.linux-foundation.org > https://lists.linux-foundation.org/mailman/listinfo/openais
_______________________________________________ Openais mailing list Openais@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/openais