/
githubmirror
/
sssd
Обзор
Документация
Войти
/
githubmirror
/
sssd
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/util/util_creds.h
80 строк
2 KB
Gleb Popov
Introduce cli_creds_set_{u,g}id() macros and use them to fix the build on FreeBSD
11 июн 2025, 09:41
11 июн 2025, 09:41
dab5ca5
Код
Авторство
О чём код?
/* Authors: Simo Sorce <simo@redhat.com> Copyright (C) 2016 Red Hat This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef __SSSD_UTIL_CREDS_H__ #define __SSSD_UTIL_CREDS_H__ #include "shared/cred.h" /* following code comes from gss-proxy's gp_selinux.h file */ #ifdef HAVE_SELINUX #include <selinux/context.h> typedef context_t SELINUX_CTX; #include <selinux/selinux.h> typedef char * SEC_CTX; #define SELINUX_context_new context_new #define SELINUX_context_free context_free #define SELINUX_context_str context_str #define SELINUX_context_type_get context_type_get #define SELINUX_context_user_get context_user_get #define SELINUX_context_role_get context_role_get #define SELINUX_context_range_get context_range_get #define SELINUX_getpeercon getpeercon #define SELINUX_freecon freecon #else /* not HAVE_SELINUX */ typedef void * SELINUX_CTX; typedef void * SEC_CTX; #define SELINUX_context_new(x) NULL #define SELINUX_context_free(x) (x) = NULL #define SELINUX_context_dummy_get(x) "<SELinux not compiled in>" #define SELINUX_context_str SELINUX_context_dummy_get #define SELINUX_context_type_get SELINUX_context_dummy_get #define SELINUX_context_user_get SELINUX_context_dummy_get #define SELINUX_context_role_get SELINUX_context_dummy_get #define SELINUX_context_range_get SELINUX_context_dummy_get #include <errno.h> #define SELINUX_getpeercon(x, y) -1; do { \ *(y) = NULL; \ errno = ENOTSUP; \ } while(0) #define SELINUX_freecon(x) (x) = NULL #endif /* done HAVE_SELINUX */ struct cli_creds { STRUCT_CRED ucred; SELINUX_CTX selinux_ctx; }; #define cli_creds_get_uid(x) (CRED_UID(&x->ucred)) #define cli_creds_get_gid(x) (CRED_GID(&x->ucred)) #define cli_creds_get_pid(x) (CRED_PID(&x->ucred)) #define cli_creds_set_uid(x, v) SET_CRED_UID(&(x)->ucred, v) #define cli_creds_set_gid(x, v) SET_CRED_GID(&(x)->ucred, v) #endif /* __SSSD_UTIL_CREDS_H__ */