sysdb_selinux.c revision 7a1a56860993475d0025e7411547649abf09d32c
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke System Database - SELinux support
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke Copyright (C) Jan Zeleny <jzeleny@redhat.com> 2012
b72a390042c19e630cf221494b60c9df2a60d187Dominik Luecke This program is free software; you can redistribute it and/or modify
b72a390042c19e630cf221494b60c9df2a60d187Dominik Luecke it under the terms of the GNU General Public License as published by
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke the Free Software Foundation; either version 3 of the License, or
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke (at your option) any later version.
2af38fde95f93562f2124ec615fba0e509c8202eDominik Luecke This program is distributed in the hope that it will be useful,
2af38fde95f93562f2124ec615fba0e509c8202eDominik Luecke but WITHOUT ANY WARRANTY; without even the implied warranty of
2af38fde95f93562f2124ec615fba0e509c8202eDominik Luecke MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cf04ba46b9eb495d334466e24e082e391055ca7bDominik Luecke GNU General Public License for more details.
2af38fde95f93562f2124ec615fba0e509c8202eDominik Luecke You should have received a copy of the GNU General Public License
926b3c5491f1c608f5b79e2d8014d7a1385558c3Dominik Luecke along with this program. If not, see <http://www.gnu.org/licenses/>.
16e124196c6b204769042028c74f533509c9b5d3Christian Maeder/* Some generic routines */
16e124196c6b204769042028c74f533509c9b5d3Christian Maedersysdb_add_selinux_entity(struct sysdb_ctx *sysdb,
b72a390042c19e630cf221494b60c9df2a60d187Dominik Luecke ret = sysdb_attrs_add_string(attrs, SYSDB_OBJECTCLASS, objectclass);
a7be28e157e9ceeec73a8fd0e642c36ea29d4218Christian Maeder DEBUG(SSSDBG_OP_FAILURE, ("Could not set map object class [%d]: %s\n",
a7be28e157e9ceeec73a8fd0e642c36ea29d4218Christian Maeder ret = sysdb_attrs_add_time_t(attrs, SYSDB_CREATE_TIME, now);
548f3850942936a8c6021185c8391dfcd3b03018Dominik Luecke DEBUG(SSSDBG_TRACE_LIBS, ("Error: %d (%s)\n", ret, strerror(ret)));
08056875f5f633ef432598d5245ea41c112d2178Dominik Lueckestatic errno_t sysdb_store_selinux_entity(struct sysdb_ctx *sysdb,
2ea0ce749d2525f96d5d2f285f519ab07b005b8dDominik Luecke ret = sysdb_attrs_get_string(attrs, SYSDB_NAME, &name);
a7be28e157e9ceeec73a8fd0e642c36ea29d4218Christian Maeder ret = sysdb_dn_sanitize(tmp_ctx, name, &clean_name);
a7be28e157e9ceeec73a8fd0e642c36ea29d4218Christian Maeder dn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb, SYSDB_TMPL_SEUSERMAP,
a7be28e157e9ceeec73a8fd0e642c36ea29d4218Christian Maeder dn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb, SYSDB_TMPL_SELINUX_BASE,
0b53895114b00141ec17ffdc7e26acded4487328Christian Maeder if (type != SELINUX_CONFIG && type != SELINUX_USER_MAP) {
202df46772cac2ee2e8627ba196a5faebb6f9a05Christian Maeder DEBUG(SSSDBG_CRIT_FAILURE, ("Bad SELinux entity type: [%d]\n", type));
202df46772cac2ee2e8627ba196a5faebb6f9a05Christian Maeder DEBUG(SSSDBG_CRIT_FAILURE, ("Failed to start transaction\n"));
202df46772cac2ee2e8627ba196a5faebb6f9a05Christian Maeder ret = sysdb_attrs_add_time_t(attrs, SYSDB_LAST_UPDATE, now);
goto done;
goto done;
goto done;
in_transaction = false;
done:
if (in_transaction) {
if (ret) {
return ret;
const char *default_user,
const char *order)
return ENOMEM;
if (!order) {
return EINVAL;
if (default_user) {
goto done;
order);
goto done;
done:
return ret;
return ret;
return EOK;
const char **attrs,
char *filter;
if (!basedn) {
return ENOMEM;
return ENOMEM;
*count = 0;
} else if (ret) {
return ret;
return EOK;
const char **attrs,
NULL };
if (!tmp_ctx) {
return ENOMEM;
if (!basedn) {
goto done;
if (ret) {
goto done;
done:
} else if (ret) {
return ret;