totemsrp.c: avoid a const-correctness problem

* exec/totemsrp.c (message_handler_memb_merge_detect): Don't modify
the now-const "msg" parameter.  Instead, use a local copy.
Patch by Steven Dake.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2063 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
Jim Meyering 2009-04-15 07:48:47 +00:00
parent d45965ecae
commit 0200fc95e9

View File

@ -3738,16 +3738,20 @@ static int message_handler_memb_merge_detect (
size_t msg_len,
int endian_conversion_needed)
{
struct memb_merge_detect *memb_merge_detect = (struct memb_merge_detect *)msg;
struct memb_merge_detect memb_merge_detect;
if (endian_conversion_needed) {
memb_merge_detect_endian_convert (msg, msg);
memb_merge_detect_endian_convert (msg, &memb_merge_detect);
} else {
memcpy (&memb_merge_detect, msg,
sizeof (struct memb_merge_detect));
}
/*
* do nothing if this is a merge detect from this configuration
*/
if (memcmp (&instance->my_ring_id, &memb_merge_detect->ring_id,
if (memcmp (&instance->my_ring_id, &memb_merge_detect.ring_id,
sizeof (struct memb_ring_id)) == 0) {
return (0);
@ -3758,19 +3762,19 @@ static int message_handler_memb_merge_detect (
*/
switch (instance->memb_state) {
case MEMB_STATE_OPERATIONAL:
memb_set_merge (&memb_merge_detect->system_from, 1,
memb_set_merge (&memb_merge_detect.system_from, 1,
instance->my_proc_list, &instance->my_proc_list_entries);
memb_state_gather_enter (instance, 9);
break;
case MEMB_STATE_GATHER:
if (!memb_set_subset (
&memb_merge_detect->system_from,
&memb_merge_detect.system_from,
1,
instance->my_proc_list,
instance->my_proc_list_entries)) {
memb_set_merge (&memb_merge_detect->system_from, 1,
memb_set_merge (&memb_merge_detect.system_from, 1,
instance->my_proc_list, &instance->my_proc_list_entries);
memb_state_gather_enter (instance, 10);
return (0);