-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix ut_lind_fs_mkdir_invalid_modebits
#43
Conversation
…t case (#16) * fix: ut_lind_fs_chdir_removeddir * fix: add syscalls * fix: revert changes * fix: testing subdir1 * fix: testing without i32 * fix: revert to mkdir * fix: test with if * fix: revert * debug: added print * debug: added print * fix: print * fix: revert println * feat: return invalid * fix: revert removed return * feat: update rm subdir1 subdir2 * refactor: update comments
…d-args Fix invalid file descriptor handling and unlink file in fchdir syscall tests
* Fix: out-of-range file descriptor handling in getdents syscall * fix: update comment * Update src/fdtables/dashmapvecglobal.rs Co-authored-by: Justin Cappos <justincappos@gmail.com> --------- Co-authored-by: lind <lind@nyu.edu> Co-authored-by: Justin Cappos <justincappos@gmail.com>
…rrno` (#24) * fix: test case ut_lind_fs_getcwd_invalid_args * fix: PR comments --------- Co-authored-by: lind <lind@nyu.edu>
* Fix: mmap test to validate EINVAL for invalid flags * fix: PR comments --------- Co-authored-by: lind <lind@nyu.edu>
…orrect Error (#27) * fix: test case ut_lind_fs_pread_from_directory * fix: add rmdir syscall --------- Co-authored-by: lind <lind@nyu.edu>
Co-authored-by: lind <lind@nyu.edu>
Co-authored-by: lind <lind@nyu.edu>
…n Handling and Recursive Directory Cleanup (#28) * fix: test case ut_lind_fs_rmdir_nowriteperm_parent_dir * feat: added cleanup --------- Co-authored-by: lind <lind@nyu.edu>
* fix: test case ut_lind_fs_mkdir_nonexisting_directory * feat: added rmdir_recursive_syscall * fix: rm unecessary function * feat: updated comment * feat: updated values --------- Co-authored-by: lind <lind@nyu.edu>
…djusting Directory Open Flags (#29) * fix: test case ut_lind_fs_getdents_bufsize_too_small * fix: rmdir for clean env --------- Co-authored-by: lind <lind@nyu.edu>
…sting Directories Before Creation (#31) * fix: test case ut_lind_fs_close_directory * feat: use rmdir --------- Co-authored-by: lind <lind@nyu.edu>
…ng Directories Before Creation (#32) * fix: test case ut_lind_fs_dir_multiple * feat: updated to rmdir --------- Co-authored-by: lind <lind@nyu.edu>
…irectories Before Creation (#30) * fix: test case ut_lind_fs_dir_mode * fix: cleanup the enviornment --------- Co-authored-by: lind <lind@nyu.edu>
…et Up and Cleaned (#35)
src/safeposix/syscalls/fs_calls.rs
Outdated
if (mode & !0o777) != 0 { | ||
return syscall_error(Errno::EPERM, "mkdir", "Invalid mode bits specified"); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is currently rawposix returned in this situation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently it return a -1 value
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you test with get_errno()
to see the errno returned by libc::mmap?
Sth like:
let ret = libc::mmap(...)
if ret < 0 {
println!(get_errno());
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This case should be handled in rust libc as well... So we don't need those checks
commit e44f2c0 Author: Alice Wen <40227173+Yaxuan-w@users.noreply.github.com> Date: Tue Oct 8 14:58:46 2024 -0400 Update README.md commit e244b91 Author: Chinmay Shringi <31031919+ChinmayShringi@users.noreply.github.com> Date: Tue Oct 8 14:55:53 2024 -0400 Feat update readme (#49) * feat: update readme * feat: added images commit ebff6b7 Author: Alice Wen <40227173+Yaxuan-w@users.noreply.github.com> Date: Tue Oct 1 13:21:00 2024 -0400 Porting newest version fdtables and Synchronize the progress of porting test suite (#14) * change to latest fdtables * using newest fdtables * mmap debug * mmap debug * mmap debug * porting test suite * porting test suite * Add more detailed comments * Fix directory cleanup issue in ut_lind_fs_mmap_invalid_flags_both test case (#16) * fix: ut_lind_fs_chdir_removeddir * fix: add syscalls * fix: revert changes * fix: testing subdir1 * fix: testing without i32 * fix: revert to mkdir * fix: test with if * fix: revert * debug: added print * debug: added print * fix: print * fix: revert println * feat: return invalid * fix: revert removed return * feat: update rm subdir1 subdir2 * refactor: update comments * fix: test case ut-lind-fs-fchdir-invalid-args * Fix out-of-range file descriptor error in `getdents` syscall (#17) * Fix: out-of-range file descriptor handling in getdents syscall * fix: update comment * Update src/fdtables/dashmapvecglobal.rs Co-authored-by: Justin Cappos <justincappos@gmail.com> --------- Co-authored-by: lind <lind@nyu.edu> Co-authored-by: Justin Cappos <justincappos@gmail.com> * Fix `getcwd_syscall` to Handle Invalid Arguments and Correctly Set `errno` (#24) * fix: test case ut_lind_fs_getcwd_invalid_args * fix: PR comments --------- Co-authored-by: lind <lind@nyu.edu> * Fix mmap test case to handle invalid flags scenario correctly (#18) * Fix: mmap test to validate EINVAL for invalid flags * fix: PR comments --------- Co-authored-by: lind <lind@nyu.edu> * Fix Test `ut_lind_fs_pread_from_directory` from Directory to Return Correct Error (#27) * fix: test case ut_lind_fs_pread_from_directory * fix: add rmdir syscall --------- Co-authored-by: lind <lind@nyu.edu> * fix: test case ut-lind-fs-write-to-directory (#19) Co-authored-by: lind <lind@nyu.edu> * fix: ut-lind-fs-simple (#21) Co-authored-by: lind <lind@nyu.edu> * Fix `ut_lind_fs_rmdir_nowriteperm_parent_dir` rmdir Nowrite Permission Handling and Recursive Directory Cleanup (#28) * fix: test case ut_lind_fs_rmdir_nowriteperm_parent_dir * feat: added cleanup --------- Co-authored-by: lind <lind@nyu.edu> * Fix ut lind fs mkdir nonexisting directory (#25) * fix: test case ut_lind_fs_mkdir_nonexisting_directory * feat: added rmdir_recursive_syscall * fix: rm unecessary function * feat: updated comment * feat: updated values --------- Co-authored-by: lind <lind@nyu.edu> * Fix EISDIR Error in `ut_lind_fs_getdents_bufsize_too_small` Test by Adjusting Directory Open Flags (#29) * fix: test case ut_lind_fs_getdents_bufsize_too_small * fix: rmdir for clean env --------- Co-authored-by: lind <lind@nyu.edu> * Fix EEXIST Error in `ut_lind_fs_close_directory` Test by Removing Existing Directories Before Creation (#31) * fix: test case ut_lind_fs_close_directory * feat: use rmdir --------- Co-authored-by: lind <lind@nyu.edu> * Fix EEXIST Error in `ut_lind_fs_dir_multiple` Test by Removing Existing Directories Before Creation (#32) * fix: test case ut_lind_fs_dir_multiple * feat: updated to rmdir --------- Co-authored-by: lind <lind@nyu.edu> * Fix EEXIST Error in `ut_lind_fs_dir_mode` Test by Removing Existing Directories Before Creation (#30) * fix: test case ut_lind_fs_dir_mode * fix: cleanup the enviornment --------- Co-authored-by: lind <lind@nyu.edu> * Fix EEXIST Error in `ut_lind_fs_unlink_directory` (#34) * fix: test case ut_lind_fs_rmdir_nonexist_dir (#36) * fix: test case ut_lind_fs_rmdir_nonempty_dir (#37) * fix: test case ut_lind_fs_link_directory (#38) * fix: test case ut_lind_fs_read_from_directory (#39) * fix: test case ut_lind_fs_rename (#41) * Fix in `ut_lind_fs_tmp_file_test` ensure /tmp Directory Is Properly Set Up and Cleaned (#35) * fix: test case ut_lind_fs_read_from_chardev_file (#44) Co-authored-by: lind <lind@nyu.edu> --------- Co-authored-by: Chinmay Shringi <31031919+ChinmayShringi@users.noreply.github.com> Co-authored-by: lind <lind@nyu.edu> Co-authored-by: Nicholas Renner <nr2185@nyu.edu> Co-authored-by: Justin Cappos <justincappos@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sry for the confusion
src/safeposix/syscalls/fs_calls.rs
Outdated
if (mode & !0o777) != 0 { | ||
return syscall_error(Errno::EPERM, "mkdir", "Invalid mode bits specified"); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This case should be handled in rust libc as well... So we don't need those checks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Fixes # (issue)
This update modifies
mkdir_syscall
to properly handle and reject invalid mode bits when creating a directory. If the mode includes bits outside the valid range (0o0000
to0o0777
), the syscall now returns anEPERM
error, indicating that the permission bits are not valid. This change ensures consistent behavior in accordance with POSIX standards, preventing directories from being created with unsupported or incorrect permissions.Type of change
How Has This Been Tested?
cargo test ut_lind_fs_mkdir_invalid_modebits
Checklist: