[Spread-cvs] cvs commit: spread/daemon Readme.txt groups.c

jonathan at spread.org jonathan at spread.org
Fri Feb 13 11:12:14 EST 2004


jonathan    04/02/13 11:12:14

  Modified:    daemon   Readme.txt groups.c
  Log:
  Update fix to alignment errors on sparc/alpha. Pointing an int to an
  unaligned buffer is 'undefined' C.
  
  Revision  Changes    Path
  1.49      +1 -1      spread/daemon/Readme.txt
  
  Index: Readme.txt
  ===================================================================
  RCS file: /storage/cvsroot/spread/daemon/Readme.txt,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- Readme.txt	9 Feb 2004 19:38:21 -0000	1.48
  +++ Readme.txt	13 Feb 2004 16:12:14 -0000	1.49
  @@ -63,7 +63,7 @@
   7) Fix crash by improving packet accounting when a client connected to a 
      singleton daemon sends a large broadcast. Reported by David Shaw.
   8) Fix bus errors on Sparc & Alpha for message buffer integer assignment. 
  -   Reported by Greg Shebert and Mikhail Terekhov. 
  +   Reported by Greg Shebert; tested and patched Mikhail Terekhov.
   9) Verify daemon names in spread.conf are unique. If non-unique names are
      provided in spread.conf, configuration will be rejected and daemon will 
      not start. Suggested by Tim Peters. 
  
  
  
  1.14      +15 -15    spread/daemon/groups.c
  
  Index: groups.c
  ===================================================================
  RCS file: /storage/cvsroot/spread/daemon/groups.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- groups.c	8 Feb 2004 15:07:23 -0000	1.13
  +++ groups.c	13 Feb 2004 16:12:14 -0000	1.14
  @@ -684,7 +684,7 @@
   	group		*grp, *new_grp;
   	member		*mbr, *new_mbr;
   	int		needed;
  -	int32		*num_vs_ptr; /* num members in virtual-synchrony/failure-atomicity set */
  +	char		*num_vs_ptr; /* num members in virtual-synchrony/failure-atomicity set */
   	int		num_bytes;
   	char		proc_name[MAX_PROC_NAME];
   	char		private_name[MAX_PRIVATE_NAME+1];
  @@ -824,7 +824,7 @@
   					head_ptr->type |= CAUSED_BY_JOIN ;
   
   					/* notify all local members */
  -					num_vs_ptr = (int32 *)&Mess_buf[ num_bytes ];
  +					num_vs_ptr = &Mess_buf[ num_bytes ];
   					num_bytes += sizeof( int32 );
                                           temp = 1;
                                           memcpy( num_vs_ptr, &temp, sizeof( int32 ) ); /* *num_vs_ptr = 1; */
  @@ -892,7 +892,7 @@
   						head_ptr = Message_get_message_header(joiner_msg);
   						head_ptr->type |= CAUSED_BY_NETWORK ;
   						/* build a self vs set */
  -						num_vs_ptr = (int32 *)&Mess_buf[ num_bytes ];
  +						num_vs_ptr = &Mess_buf[ num_bytes ];
   						num_bytes += sizeof( int32 );
                                                   temp = 1;
                                                   memcpy( num_vs_ptr, &temp, sizeof( int32 ) ); /* *num_vs_ptr = 1; */
  @@ -1022,7 +1022,7 @@
   	proc		p, p1;
   	group		*grp;
   	member		*mbr;
  -	int32		*num_vs_ptr; /* num members in vs set */
  +	char		*num_vs_ptr; /* num members in vs set */
   	char		*vs_ptr;     /* the virtual synchrony set */
   	message_link	*mess_link;
   	message_header	*head_ptr;
  @@ -1147,7 +1147,7 @@
   			head_ptr->type |= CAUSED_BY_LEAVE ;
   
   			/* notify all local members */
  -			num_vs_ptr = (int32 *)&Mess_buf[ num_bytes ];
  +			num_vs_ptr = &Mess_buf[ num_bytes ];
   			num_bytes += sizeof( int32 );
                           temp = 1;
                           memcpy( num_vs_ptr, &temp, sizeof( int32 ) ); /* *num_vs_ptr = 1; */
  @@ -1219,7 +1219,7 @@
   	proc		p, p1;
   	group		*grp, *nextgroup;
   	member		*mbr;
  -	int32		*num_vs_ptr; /* num members in vs set */
  +	char		*num_vs_ptr; /* num members in vs set */
   	char		*vs_ptr;     /* the virtual synchrony set */
   	message_link	*mess_link;
   	message_header	*head_ptr;
  @@ -1341,7 +1341,7 @@
   
   				head_ptr->type |= CAUSED_BY_DISCONNECT ;
   
  -				num_vs_ptr = (int32 *)&Mess_buf[ num_bytes ];
  +				num_vs_ptr = &Mess_buf[ num_bytes ];
   				num_bytes += sizeof( int32 );
                                   temp = 1;
                                   memcpy( num_vs_ptr, &temp, sizeof( int32 ) ); /* *num_vs_ptr = 1; */
  @@ -1484,7 +1484,7 @@
   	int		changed;
   	int		ret;
   	int		vs_bytes;
  -	int32		*num_vs_ptr; /* num members in virtual-synchrony/failure-atomicity set */
  +	char		*num_vs_ptr; /* num members in virtual-synchrony/failure-atomicity set */
           int32           num_vs;
   	int		num_exist;
   	struct worklist *indices[MAX_PROCS_RING];
  @@ -1544,7 +1544,7 @@
   	    group *this_group;
   	    /* prepare vs set */
   	    vs_bytes = 0;
  -	    num_vs_ptr = (int32 *)&Temp_buf[0];
  +	    num_vs_ptr = &Temp_buf[0];
   	    vs_bytes+= sizeof( int32 );
               num_vs = 0;
   	    
  @@ -1859,7 +1859,7 @@
   
   	int		num_bytes;
   	message_header	*head_ptr;
  -	int32		*num_vs_ptr; /* num members in virtual-synchrony/failure-atomicity set */
  +	char		*num_vs_ptr; /* num members in virtual-synchrony/failure-atomicity set */
   	struct skiplistnode *iter;
           member          *mbr;
   	char		*membs_ptr;
  @@ -1870,7 +1870,7 @@
   
   	head_ptr->type = head_ptr->type | caused;
   
  -	num_vs_ptr = (int32 *)&buf[num_bytes];
  +	num_vs_ptr = &buf[num_bytes];
   	num_bytes += sizeof( int32 );
           head_ptr->data_len += sizeof( int32 );
           num_vs = 0;
  @@ -1925,7 +1925,7 @@
   	char		*gid_ptr;
   	member		*mbr;
   	struct skiplistnode *giter, *iter;
  -	int16		*num_memb_ptr;
  +	char		*num_memb_ptr;
           int16           num_memb;
   	char		*memb_ptr;
           int     size_for_this_group;
  @@ -1955,7 +1955,7 @@
   		num_bytes += sizeof( group_id );
   		memcpy( gid_ptr, &grp->grp_id, sizeof(group_id) );
   
  -		num_memb_ptr = (int16 *)&buf[num_bytes];
  +		num_memb_ptr = &buf[num_bytes];
   		num_bytes += sizeof( int16 );
   		num_memb  = 0;
   
  @@ -1992,7 +1992,7 @@
   	group		*grp;
   	char		*gid_ptr;
   	member		*mbr;
  -	int16		*num_memb_ptr;
  +	char		*num_memb_ptr;
           int16           num_memb;
   	int		i;
   
  @@ -2041,7 +2041,7 @@
   		num_bytes += sizeof( group_id );
   		memcpy( &grp->grp_id, gid_ptr, sizeof(group_id) );
   
  -		num_memb_ptr = (int16 *)&Temp_buf[num_bytes];
  +		num_memb_ptr = &Temp_buf[num_bytes];
   		num_bytes += sizeof( int16 );
                   memcpy( &num_memb, num_memb_ptr, sizeof( int16 ) );
   
  
  
  




More information about the Spread-cvs mailing list