shell bypass 403

Cubjrnet7 Shell


name : device.c
/**
@file
@brief    'transport' device
@details  Copyright (c) 2017 Acronis International GmbH
@author   Mikhail Krivtsov ([email protected])
@since    $Id: $
*/

#include "device.h"

#include "debug.h"		// DPRINTF
#include "memory.h"
#include "transport.h"
#include "transport_protocol.h"

#include <linux/errno.h>	// error codes: ENOMEM
#include <linux/fs.h>
#include <linux/miscdevice.h>

static const struct file_operations operations = {
	.owner		= THIS_MODULE,
	.open		= transport_device_open,
#ifdef HAVE_NO_LLSEEK
	.llseek		= no_llseek,
#endif
	.read		= transport_device_read,
	.write		= transport_device_write,
	.unlocked_ioctl	= transport_device_ioctl,
	.release	= transport_device_release,
	.mmap     = transport_device_mmap,
};

static struct miscdevice miscdevice = {
	.minor = MISC_DYNAMIC_MINOR,
	.name  = TRANSPORT_DEVICE_NAME,
	.fops = &operations,
};

int __init device_mod_init(void)
{
	int ret;

	ret = misc_register(&miscdevice);
	if (ret) {
		EPRINTF("'misc_register()' failure %i", ret);
		goto out;
	}
	DPRINTF("miscdevice.minor=%i", miscdevice.minor);
	// Note: 'ret' is already 0 here
out:
	return ret;
}

void device_mod_down(void)
{
	DPRINTF("");
	misc_deregister(&miscdevice);
	DPRINTF("");
}

© 2025 Cubjrnet7