Skip to content

fix(vfs): 修复syncfs系统调用中文件描述符验证问题#1369

Merged
fslongjin merged 1 commit intoDragonOS-Community:masterfrom
fslongjin:fix-syncfs-fd-validation
Nov 12, 2025
Merged

fix(vfs): 修复syncfs系统调用中文件描述符验证问题#1369
fslongjin merged 1 commit intoDragonOS-Community:masterfrom
fslongjin:fix-syncfs-fd-validation

Conversation

@fslongjin
Copy link
Member

  • 在syncfs系统调用中添加文件描述符验证逻辑
  • 检查文件描述符是否存在以及是否以O_PATH模式打开
  • 当文件描述符无效或为O_PATH模式时返回EBADF错误
  • 添加sync_test到gvisor测试白名单中

- 在syncfs系统调用中添加文件描述符验证逻辑
- 检查文件描述符是否存在以及是否以O_PATH模式打开
- 当文件描述符无效或为O_PATH模式时返回EBADF错误
- 添加sync_test到gvisor测试白名单中

Signed-off-by: longjin <longjin@DragonOS.org>
Copilot AI review requested due to automatic review settings November 12, 2025 13:05
@github-actions github-actions bot added the Bug fix A bug is fixed in this pull request label Nov 12, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes a file descriptor validation issue in the syncfs system call by adding proper validation logic to check if the fd exists and whether it was opened with O_PATH mode. When the file descriptor is invalid or opened with O_PATH, the syscall now correctly returns EBADF error.

  • Added file descriptor existence validation in syncfs syscall
  • Added O_PATH mode check to reject O_PATH file descriptors
  • Enabled sync_test in the gvisor test whitelist

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
kernel/src/filesystem/vfs/syscall/sys_sync.rs Added fd validation logic including O_PATH check and proper error handling
user/apps/tests/syscall/gvisor/whitelist.txt Added sync_test to enable testing of the sync/syncfs functionality

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@fslongjin fslongjin merged commit 98d9f20 into DragonOS-Community:master Nov 12, 2025
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug fix A bug is fixed in this pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants