Page MenuHomeFreeBSD

nfsclient: Copy only initialized fields in nfs_getattr()
ClosedPublic

Authored by markj on May 3 2021, 1:31 PM.
Tags
None
Referenced Files
Unknown Object (File)
Feb 16 2024, 6:10 AM
Unknown Object (File)
Feb 12 2024, 4:42 AM
Unknown Object (File)
Dec 20 2023, 2:57 PM
Unknown Object (File)
Dec 20 2023, 5:27 AM
Unknown Object (File)
Nov 30 2023, 2:03 PM
Unknown Object (File)
Nov 22 2023, 8:16 PM
Unknown Object (File)
Nov 8 2023, 8:12 PM
Unknown Object (File)
Nov 8 2023, 1:19 AM
Subscribers

Details

Summary

When loading attributes from the cache, the NFS client is careful to
copy only the fields that it initialized. After fetching attributes
from the server, however, it would copy the entire vattr structure
initialized from the RPC response, so uninitialized stack bytes would
end up being copied to userspace. In particular, va_btime (v2 and v3)
and va_gen (v3) had this problem.

Use a common subroutine to copy fields provided by the NFS client, and
ensure that we provide a dummy va_gen for the v3 case.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj requested review of this revision.May 3 2021, 1:31 PM

Looks fine to me. Until I just looked, I didn't realize
that the NFSv4 client doesn't get birthtime.
I'll add that to my todo list, but this patch looks
fine until then.

This revision is now accepted and ready to land.May 3 2021, 9:15 PM