mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Remove outdated TODOs in verity
PiperOrigin-RevId: 371198372
This commit is contained in:
@@ -36,7 +36,6 @@ const (
|
||||
)
|
||||
|
||||
// DigestSize returns the size (in bytes) of a digest.
|
||||
// TODO(b/156980949): Allow config SHA384.
|
||||
func DigestSize(hashAlgorithm int) int {
|
||||
switch hashAlgorithm {
|
||||
case linux.FS_VERITY_HASH_ALG_SHA256:
|
||||
@@ -69,7 +68,6 @@ func InitLayout(dataSize int64, hashAlgorithms int, dataAndTreeInSameFile bool)
|
||||
blockSize: hostarch.PageSize,
|
||||
}
|
||||
|
||||
// TODO(b/156980949): Allow config SHA384.
|
||||
switch hashAlgorithms {
|
||||
case linux.FS_VERITY_HASH_ALG_SHA256:
|
||||
layout.digestSize = sha256DigestSize
|
||||
@@ -429,8 +427,6 @@ func Verify(params *VerifyParams) (int64, error) {
|
||||
}
|
||||
// If this is the end of file, zero the remaining bytes in buf,
|
||||
// otherwise they are still from the previous block.
|
||||
// TODO(b/162908070): Investigate possible issues with zero
|
||||
// padding the data.
|
||||
if bytesRead < len(buf) {
|
||||
for j := bytesRead; j < len(buf); j++ {
|
||||
buf[j] = 0
|
||||
|
||||
@@ -168,10 +168,6 @@ afterSymlink:
|
||||
// Preconditions:
|
||||
// * fs.renameMu must be locked.
|
||||
// * d.dirMu must be locked.
|
||||
//
|
||||
// TODO(b/166474175): Investigate all possible errors returned in this
|
||||
// function, and make sure we differentiate all errors that indicate unexpected
|
||||
// modifications to the file system from the ones that are not harmful.
|
||||
func (fs *filesystem) verifyChildLocked(ctx context.Context, parent *dentry, child *dentry) (*dentry, error) {
|
||||
vfsObj := fs.vfsfs.VirtualFilesystem()
|
||||
|
||||
@@ -278,16 +274,15 @@ func (fs *filesystem) verifyChildLocked(ctx context.Context, parent *dentry, chi
|
||||
var buf bytes.Buffer
|
||||
parent.hashMu.RLock()
|
||||
_, err = merkletree.Verify(&merkletree.VerifyParams{
|
||||
Out: &buf,
|
||||
File: &fdReader,
|
||||
Tree: &fdReader,
|
||||
Size: int64(parentSize),
|
||||
Name: parent.name,
|
||||
Mode: uint32(parentStat.Mode),
|
||||
UID: parentStat.UID,
|
||||
GID: parentStat.GID,
|
||||
Children: parent.childrenNames,
|
||||
//TODO(b/156980949): Support passing other hash algorithms.
|
||||
Out: &buf,
|
||||
File: &fdReader,
|
||||
Tree: &fdReader,
|
||||
Size: int64(parentSize),
|
||||
Name: parent.name,
|
||||
Mode: uint32(parentStat.Mode),
|
||||
UID: parentStat.UID,
|
||||
GID: parentStat.GID,
|
||||
Children: parent.childrenNames,
|
||||
HashAlgorithms: fs.alg.toLinuxHashAlg(),
|
||||
ReadOffset: int64(offset),
|
||||
ReadSize: int64(merkletree.DigestSize(fs.alg.toLinuxHashAlg())),
|
||||
@@ -409,15 +404,14 @@ func (fs *filesystem) verifyStatAndChildrenLocked(ctx context.Context, d *dentry
|
||||
var buf bytes.Buffer
|
||||
d.hashMu.RLock()
|
||||
params := &merkletree.VerifyParams{
|
||||
Out: &buf,
|
||||
Tree: &fdReader,
|
||||
Size: int64(size),
|
||||
Name: d.name,
|
||||
Mode: uint32(stat.Mode),
|
||||
UID: stat.UID,
|
||||
GID: stat.GID,
|
||||
Children: d.childrenNames,
|
||||
//TODO(b/156980949): Support passing other hash algorithms.
|
||||
Out: &buf,
|
||||
Tree: &fdReader,
|
||||
Size: int64(size),
|
||||
Name: d.name,
|
||||
Mode: uint32(stat.Mode),
|
||||
UID: stat.UID,
|
||||
GID: stat.GID,
|
||||
Children: d.childrenNames,
|
||||
HashAlgorithms: fs.alg.toLinuxHashAlg(),
|
||||
ReadOffset: 0,
|
||||
// Set read size to 0 so only the metadata is verified.
|
||||
@@ -991,8 +985,6 @@ func (fs *filesystem) SetStatAt(ctx context.Context, rp *vfs.ResolvingPath, opts
|
||||
}
|
||||
|
||||
// StatAt implements vfs.FilesystemImpl.StatAt.
|
||||
// TODO(b/170157489): Investigate whether stats other than Mode/UID/GID should
|
||||
// be verified.
|
||||
func (fs *filesystem) StatAt(ctx context.Context, rp *vfs.ResolvingPath, opts vfs.StatOptions) (linux.Statx, error) {
|
||||
var ds *[]*dentry
|
||||
fs.renameMu.RLock()
|
||||
|
||||
@@ -840,7 +840,6 @@ func (fd *fileDescription) Release(ctx context.Context) {
|
||||
|
||||
// Stat implements vfs.FileDescriptionImpl.Stat.
|
||||
func (fd *fileDescription) Stat(ctx context.Context, opts vfs.StatOptions) (linux.Statx, error) {
|
||||
// TODO(b/162788573): Add integrity check for metadata.
|
||||
stat, err := fd.lowerFD.Stat(ctx, opts)
|
||||
if err != nil {
|
||||
return linux.Statx{}, err
|
||||
@@ -960,10 +959,9 @@ func (fd *fileDescription) generateMerkleLocked(ctx context.Context) ([]byte, ui
|
||||
}
|
||||
|
||||
params := &merkletree.GenerateParams{
|
||||
TreeReader: &merkleReader,
|
||||
TreeWriter: &merkleWriter,
|
||||
Children: fd.d.childrenNames,
|
||||
//TODO(b/156980949): Support passing other hash algorithms.
|
||||
TreeReader: &merkleReader,
|
||||
TreeWriter: &merkleWriter,
|
||||
Children: fd.d.childrenNames,
|
||||
HashAlgorithms: fd.d.fs.alg.toLinuxHashAlg(),
|
||||
Name: fd.d.name,
|
||||
Mode: uint32(stat.Mode),
|
||||
@@ -1192,8 +1190,6 @@ func (fd *fileDescription) Ioctl(ctx context.Context, uio usermem.IO, args arch.
|
||||
case linux.FS_IOC_GETFLAGS:
|
||||
return fd.verityFlags(ctx, args[2].Pointer())
|
||||
default:
|
||||
// TODO(b/169682228): Investigate which ioctl commands should
|
||||
// be allowed.
|
||||
return 0, syserror.ENOSYS
|
||||
}
|
||||
}
|
||||
@@ -1253,16 +1249,15 @@ func (fd *fileDescription) PRead(ctx context.Context, dst usermem.IOSequence, of
|
||||
|
||||
fd.d.hashMu.RLock()
|
||||
n, err := merkletree.Verify(&merkletree.VerifyParams{
|
||||
Out: dst.Writer(ctx),
|
||||
File: &dataReader,
|
||||
Tree: &merkleReader,
|
||||
Size: int64(size),
|
||||
Name: fd.d.name,
|
||||
Mode: fd.d.mode,
|
||||
UID: fd.d.uid,
|
||||
GID: fd.d.gid,
|
||||
Children: fd.d.childrenNames,
|
||||
//TODO(b/156980949): Support passing other hash algorithms.
|
||||
Out: dst.Writer(ctx),
|
||||
File: &dataReader,
|
||||
Tree: &merkleReader,
|
||||
Size: int64(size),
|
||||
Name: fd.d.name,
|
||||
Mode: fd.d.mode,
|
||||
UID: fd.d.uid,
|
||||
GID: fd.d.gid,
|
||||
Children: fd.d.childrenNames,
|
||||
HashAlgorithms: fd.d.fs.alg.toLinuxHashAlg(),
|
||||
ReadOffset: offset,
|
||||
ReadSize: dst.NumBytes(),
|
||||
|
||||
Reference in New Issue
Block a user