On Tue, Aug 31, 2010 at 06:11:50PM +0000, Dimitry Andric wrote: > Author: dim > Date: Tue Aug 31 18:11:50 2010 > New Revision: 212064 > URL: http://svn.freebsd.org/changeset/base/212064 > > Log: > Avoid directly manipulating a NULL pointer (which could result in > undefined behaviour) in sys/boot/pc98/boot2/boot2.c. > > Reviewed by: nyan > Approved by: rpaulo (mentor) > > Modified: > head/sys/boot/pc98/boot2/boot2.c > > Modified: head/sys/boot/pc98/boot2/boot2.c > ============================================================================== > --- head/sys/boot/pc98/boot2/boot2.c Tue Aug 31 17:43:47 2010 > (r212063) > +++ head/sys/boot/pc98/boot2/boot2.c Tue Aug 31 18:11:50 2010 > (r212064) > @@ -187,9 +187,9 @@ xfsread(ino_t inode, void *buf, size_t n > static inline uint32_t > memsize(void) > { > - u_char *p = (u_char *)PTOV(0); > + u_char *p = (u_char *)PTOV(0x401); > > - return *(p + 0x401) * 128 * 1024 + *(u_int16_t *)(p + 0x594) * 1024 * > 1024; > + return *p * 128 * 1024 + *(u_int16_t *)(p + (0x594 - 0x401)) * 1024 * > 1024; > } > > static inline void
What is the undefined behaviour you are claiming there ? Meaningful conversion from the integer type to a pointer type is implementation-defined anyway.
pgpOslqAXwoB3.pgp
Description: PGP signature