Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/arch/atari/stand/installboot



On Nov 14,  2:43am, tsutsui%ceres.dti.ne.jp@localhost (Izumi Tsutsui) wrote:
-- Subject: Re: CVS commit: src/sys/arch/atari/stand/installboot

| christos@ wrote:
| 
| > Module Name:	src
| > Committed By:	christos
| > Date:		Thu Nov 13 17:19:29 UTC 2014
| > 
| > Modified Files:
| > 	src/sys/arch/atari/stand/installboot: installboot.c
| > 
| > Log Message:
| > fix strict aliasing violations
| 
| > -	*((u_int16_t *)bb->bb_xxboot + 255) = 0;
| > -	*((u_int16_t *)bb->bb_xxboot + 255) = 0x1234 - abcksum(bb->bb_xxboot);
| > +	sum = 0;
| > +	memcpy(bb->bb_xxboot + 255, &sum, sizeof(sum));
| > +	sum = 0x1234 - abcksum(bb->bb_xxboot);
| > +	memcpy(bb->bb_xxboot + 255, &sum, sizeof(sum));
| 
| I doubt your "bb->bb_xxboot + 255" is the same place
| as the original "(u_int16_t *)bb->bb_xxboot + 255"
| (the cksum word looks at the end of 512 byte sector).
| 
| memcpy(9) looks also awful for readers because it hides endianness..

Let me fix it, but memcpy is the only way.

christos


Home | Main Index | Thread Index | Old Index