Old bug in patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c
Jung-uk Kim
jkim at FreeBSD.org
Thu Aug 13 22:09:28 UTC 2020
On 20. 6. 23., Martin Simmons wrote:
> Is the memcpy wrong too? It looks like fsinfo.serial is a single uint32_t
> (i.e. 32 bits), but mp->mnt_stat.f_fsid is a pair of int32_t (i.e. 64 bits),
> so copying this pair from fsinfo.serial is wrong.
You're right. I just committed a fix (r544846).
Sorry for the late response.
Jung-uk Kim
>>>>>> On Mon, 22 Jun 2020 14:22:05 -0400, Mikhail T said:
>>
>> Gentlemen!
>>
>> An old bug in the patch is causing compiler-warnings, and leads to
>> erroneous behavior where pointers are bigger than 32-bit.
>>
>> Moreover, given the memcpy right after it, the bzero is simply not
>> needed at all. Instead of removing the bogus ampersand, the entire line
>> should be deleted. (I would've replaced the memcpy with an assignment
>> too, but that's not as pressing.)
>>
>> Can I commit this?
>>
>> Index: files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c
>> ===================================================================
>> --- files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c
>> (revision 539883)
>> +++ files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c
>> (working copy)
>> @@ -11,7 +11,7 @@
>> *
>> * This file is part of VirtualBox Open Source Edition (OSE), as
>> * available from http://www.virtualbox.org. This file is free
>> software;
>> -@@ -14,245 +9,479 @@
>> +@@ -14,245 +9,478 @@
>> * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
>> * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
>> */
>> @@ -466,7 +466,6 @@
>> +
>> + MNT_ILOCK(mp);
>> + mp->mnt_data = vboxfsmp;
>> *-+ bzero(&mp->mnt_stat.f_fsid, sizeof(&mp->mnt_stat.f_fsid));*
>> + /* f_fsid is int32_t but serial is uint32_t, convert */
>> + memcpy(&mp->mnt_stat.f_fsid, &fsinfo.serial,
>> sizeof(mp->mnt_stat.f_fsid));
>> + mp->mnt_flag |= MNT_LOCAL;
More information about the freebsd-emulation
mailing list