Skip to content

Conversation

@5ec1cff
Copy link
Collaborator

@5ec1cff 5ec1cff commented Dec 16, 2025

  • Use d_dname to forge paths: Fixes an issue where some programs (such as screen) required a valid tty path.
  • Enhance security using anon_inode_create_getfile and implements this function for older kernel versions.
  • Support reopen from /proc/pid/fd

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 pull request refactors the file wrapper implementation to use d_dname for forging paths, enabling compatibility with programs like screen that require valid tty paths. The changes consolidate file wrapper logic into file_wrapper.c and introduce custom dentry operations to provide proper path resolution.

Key changes:

  • Introduces custom dentry operations (d_dname and d_release) to enable path resolution for wrapped file descriptors
  • Refactors file wrapper creation logic from supercalls.c into a new public function install_file_wrapper() in file_wrapper.c
  • Makes previously exported wrapper functions (ksu_create_file_wrapper, ksu_delete_file_wrapper) static to improve encapsulation

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 8 comments.

File Description
kernel/supercalls.c Simplified do_get_wrapper_fd to delegate to new install_file_wrapper function; removed now-unnecessary objsec.h include
kernel/file_wrapper.h Updated API to expose only install_file_wrapper, hiding internal implementation details
kernel/file_wrapper.c Added dentry operations for path forging, moved wrapper installation logic from supercalls.c, made helper functions static

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

@5ec1cff 5ec1cff force-pushed the fakepath branch 2 times, most recently from 153c9b3 to 3accc70 Compare December 16, 2025 12:37
@5ec1cff 5ec1cff marked this pull request as draft December 16, 2025 12:43
@5ec1cff 5ec1cff force-pushed the fakepath branch 2 times, most recently from 030ed01 to 486c2e6 Compare December 16, 2025 12:59
@5ec1cff 5ec1cff requested a review from Copilot December 16, 2025 13:28
@5ec1cff 5ec1cff changed the title kernel: file_wrapper: use d_dname to forge path kernel: Refactor file_wrapper Dec 16, 2025
@5ec1cff 5ec1cff marked this pull request as ready for review December 16, 2025 13:35
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

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.


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

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.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

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

Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.


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

@5ec1cff 5ec1cff requested a review from Copilot December 16, 2025 14:36
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 7, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 7, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 7, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 8, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 8, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
u9521 pushed a commit to u9521/KernelSU that referenced this pull request Jan 8, 2026
- [x] Use d_dname to forge paths: Fixes an issue where some programs
(such as
[screen](https://cgit.git.savannah.gnu.org/cgit/screen.git/tree/src/screen.c?id=27b44ea4ebb18296e6ceffaf5a2e3638c8a950be#n1914))
required a valid tty path.
- [x] Enhance security using anon_inode_create_getfile and implements
this function for older kernel versions.
- [x] Support reopen from /proc/pid/fd
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 8, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 9, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 9, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 9, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 9, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 9, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 10, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 10, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 10, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 10, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 10, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 10, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 10, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 11, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 12, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 12, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
u9521 pushed a commit to u9521/KernelSU that referenced this pull request Jan 13, 2026
- [x] Use d_dname to forge paths: Fixes an issue where some programs
(such as
[screen](https://cgit.git.savannah.gnu.org/cgit/screen.git/tree/src/screen.c?id=27b44ea4ebb18296e6ceffaf5a2e3638c8a950be#n1914))
required a valid tty path.
- [x] Enhance security using anon_inode_create_getfile and implements
this function for older kernel versions.
- [x] Support reopen from /proc/pid/fd
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 13, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 13, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 13, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 13, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 13, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
backslashxx added a commit to backslashxx/KernelSU that referenced this pull request Jan 13, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
selfmusing pushed a commit to selfmusing/USlenreK that referenced this pull request Jan 13, 2026
This commit adds compat to tiann#3070

while backporting alloc_file_pseudo is fine and all, this just becomes a cascade once we go to UL
- alloc_file_pseudo, 4.19
- alloc_anon_inode, 3.13
- new_inode_pseudo, 3.1

this becomes shit so fast when this one just works.
I dunno the implications, who cares, its legacy shit.

context_inode is NULL on anon_inode_getfile_secure call here so its not that important
ref: torvalds/linux@91a9ab7

this also removes lsm notification it does when inode is being created.
not really needed.

tests:
sunny:/ $ su
root@localhost:[~]:# screen
[screen is terminating]
root@localhost:[~]:# echo 3070 > /proc/self/fd/0
3070
root@localhost:[~]:# uname -vr
4.14.356+12-mojito/14e8dc1 #0 SMP PREEMPT Wed Dec 17 19:08:23 PST 2025

devlog
tiann@cf72948 *
tiann@fe0d4b5
tiann@8ba2e35

Signed-off-by: backslashxx <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants