svn commit: r212064 - head/sys/boot/pc98/boot2
John Baldwin
jhb at freebsd.org
Tue Aug 31 19:40:23 UTC 2010
On Tuesday, August 31, 2010 2:11:50 pm 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;
> }
Perhaps replace '(p + 0x594 - 0x401)' with just 'PTOV(0x594)'?
I would actually find it cleaner to remove 'p' altogether perhaps:
return (*(u_char *)PTOV(0x401) * 128 * 1024 +
*(uint16_t *)PTOV(0x594) * 1024 * 1024);
--
John Baldwin
More information about the svn-src-head
mailing list