162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci#include <stdbool.h> 462306a36Sopenharmony_ci#include <stdlib.h> 562306a36Sopenharmony_ci#include <error.h> 662306a36Sopenharmony_ci#include <stdio.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include "unpriv_helpers.h" 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cibool get_unpriv_disabled(void) 1162306a36Sopenharmony_ci{ 1262306a36Sopenharmony_ci bool disabled; 1362306a36Sopenharmony_ci char buf[2]; 1462306a36Sopenharmony_ci FILE *fd; 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci fd = fopen("/proc/sys/" UNPRIV_SYSCTL, "r"); 1762306a36Sopenharmony_ci if (fd) { 1862306a36Sopenharmony_ci disabled = (fgets(buf, 2, fd) == buf && atoi(buf)); 1962306a36Sopenharmony_ci fclose(fd); 2062306a36Sopenharmony_ci } else { 2162306a36Sopenharmony_ci perror("fopen /proc/sys/" UNPRIV_SYSCTL); 2262306a36Sopenharmony_ci disabled = true; 2362306a36Sopenharmony_ci } 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci return disabled; 2662306a36Sopenharmony_ci} 27