Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.13-rc5 56 lines 1.0 kB view raw
1// SPDX-License-Identifier: GPL-2.0-only 2 3#include <stdbool.h> 4#include <stdlib.h> 5#include <stdio.h> 6#include <string.h> 7#include <unistd.h> 8#include <fcntl.h> 9 10#include "unpriv_helpers.h" 11 12static bool get_mitigations_off(void) 13{ 14 char cmdline[4096], *c; 15 int fd, ret = false; 16 17 fd = open("/proc/cmdline", O_RDONLY); 18 if (fd < 0) { 19 perror("open /proc/cmdline"); 20 return false; 21 } 22 23 if (read(fd, cmdline, sizeof(cmdline) - 1) < 0) { 24 perror("read /proc/cmdline"); 25 goto out; 26 } 27 28 cmdline[sizeof(cmdline) - 1] = '\0'; 29 for (c = strtok(cmdline, " \n"); c; c = strtok(NULL, " \n")) { 30 if (strncmp(c, "mitigations=off", strlen(c))) 31 continue; 32 ret = true; 33 break; 34 } 35out: 36 close(fd); 37 return ret; 38} 39 40bool get_unpriv_disabled(void) 41{ 42 bool disabled; 43 char buf[2]; 44 FILE *fd; 45 46 fd = fopen("/proc/sys/" UNPRIV_SYSCTL, "r"); 47 if (fd) { 48 disabled = (fgets(buf, 2, fd) == buf && atoi(buf)); 49 fclose(fd); 50 } else { 51 perror("fopen /proc/sys/" UNPRIV_SYSCTL); 52 disabled = true; 53 } 54 55 return disabled ? true : get_mitigations_off(); 56}