Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4ac01e8 authored by Daniel Micay's avatar Daniel Micay Committed by LuK1337
Browse files

Add toggle for disabling newly added USB devices



Based on the public grsecurity patches.

Change-Id: I2cbea91b351cda7d098f4e1aa73dff1acbd23cce
Signed-off-by: default avatarDaniel Micay <danielmicay@gmail.com>
parent ba156be8
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@
#define USB_VENDOR_GENESYS_LOGIC		0x05e3
#define HUB_QUIRK_CHECK_PORT_AUTOSUSPEND	0x01

int deny_new_usb __read_mostly = 0;

/* Protect struct usb_device->state and ->children members
 * Note: Both are also protected by ->dev.sem, except that ->state can
 * change to USB_STATE_NOTATTACHED even when the semaphore isn't held. */
@@ -4839,6 +4841,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
			goto done;
		return;
	}

	if (deny_new_usb) {
		dev_err(&port_dev->dev, "denied insert of USB device on port %d\n", port1);
		goto done;
	}

	if (hub_is_superspeed(hub->hdev))
		unit_load = 150;
	else
+14 −0
Original line number Diff line number Diff line
@@ -98,6 +98,9 @@
#if defined(CONFIG_SYSCTL)

/* External variables not in a header file. */
#ifdef CONFIG_USB
extern int deny_new_usb;
#endif
extern int suid_dumpable;
#ifdef CONFIG_COREDUMP
extern int core_uses_pid;
@@ -1002,6 +1005,17 @@ static struct ctl_table kern_table[] = {
		.extra1		= &zero,
		.extra2		= &two,
	},
#endif
#ifdef CONFIG_USB
	{
		.procname	= "deny_new_usb",
		.data		= &deny_new_usb,
		.maxlen		= sizeof(int),
		.mode		= 0644,
		.proc_handler	= proc_dointvec_minmax_sysadmin,
		.extra1		= &zero,
		.extra2		= &one,
	},
#endif
	{
		.procname	= "ngroups_max",