PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
| Dir : /usr/src/file_protector-1.1-1592/ |
| Server: Linux ituca148.hostpapavps.net 4.18.0-553.141.2.el8_10.x86_64 #1 SMP Wed Jul 8 10:28:18 EDT 2026 x86_64 IP: 216.7.89.187 |
| Dir : //usr/src/file_protector-1.1-1592/ptrace_manager.c |
/**
@file ptrace_manager.c
@brief Manager for ptrace
@details Copyright (c) 2026 Acronis International GmbH
@author Bruce Wang (bruce.wang@acronis.com)
@since $Id: $
*/
#include "ptrace_manager.h"
lru_hashtable_manager_t *global_ptrace_manager;
// MARK: Ptrace manager
int ptrace_manager_init(void)
{
return lru_hashtable_manager_init(&global_ptrace_manager);
}
void ptrace_manager_deinit(void)
{
lru_hashtable_manager_deinit(global_ptrace_manager);
}
void ptrace_manager_activate(void)
{
lru_hashtable_manager_activate(global_ptrace_manager);
}
void ptrace_manager_deactivate(void)
{
lru_hashtable_manager_deactivate(global_ptrace_manager);
}
static bool ptrace_manager_key_exist(const lru_hashtable_key_t *key)
{
return lru_hashtable_manager_key_exist(global_ptrace_manager, key, LRU_HASHTABLE_KEY_TYPE_PTRACE);
}
bool ptrace_should_send(task_info_t *caller_task_info, task_info_t *target_task_info, unsigned int mode)
{
lru_hashtable_key_t key;
key.ptrace_key.access_mode = mode;
key.ptrace_key.caller_pid_version = READ_ONCE(caller_task_info->pid_version);
key.ptrace_key.target_pid_version = READ_ONCE(target_task_info->pid_version);
if (ptrace_manager_key_exist(&key))
{
return false;
}
return true;
}