|
 |
25bb7d |
From e30036e358b8f1c3f56048b467e8646fa3bfffb6 Mon Sep 17 00:00:00 2001
|
|
 |
25bb7d |
From: Dan Walsh <dwalsh@redhat.com>
|
|
 |
25bb7d |
Date: Tue, 20 Sep 2011 16:40:26 -0400
|
|
 |
25bb7d |
Subject: [PATCH 7/7] Remove unused variables
|
|
 |
25bb7d |
|
|
 |
25bb7d |
---
|
|
 |
25bb7d |
libapol/src/ftrule-query.c | 11 ++----
|
|
 |
25bb7d |
libqpol/src/ftrule_query.c | 2 -
|
|
 |
25bb7d |
secmds/sesearch.c | 86 +++++++++++++++++++++++++++++++++-----------
|
|
 |
25bb7d |
3 files changed, 68 insertions(+), 31 deletions(-)
|
|
 |
25bb7d |
|
|
 |
25bb7d |
diff --git a/libapol/src/ftrule-query.c b/libapol/src/ftrule-query.c
|
|
 |
25bb7d |
index dc248de..9c7a23b 100644
|
|
 |
25bb7d |
--- a/libapol/src/ftrule-query.c
|
|
 |
25bb7d |
+++ b/libapol/src/ftrule-query.c
|
|
 |
25bb7d |
@@ -45,14 +45,11 @@ struct apol_filename_trans_query
|
|
 |
25bb7d |
int apol_filename_trans_get_by_query(const apol_policy_t * p, const apol_filename_trans_query_t * t, apol_vector_t ** v)
|
|
 |
25bb7d |
{
|
|
 |
25bb7d |
apol_vector_t *source_list = NULL, *target_list = NULL, *class_list = NULL, *default_list = NULL;
|
|
 |
25bb7d |
- int retval = -1, source_as_any = 0, is_regex = 0, append_filename_trans;
|
|
 |
25bb7d |
- char *bool_name = NULL;
|
|
 |
25bb7d |
+ int retval = -1, source_as_any = 0, is_regex = 0;
|
|
 |
25bb7d |
*v = NULL;
|
|
 |
25bb7d |
- unsigned int flags = 0;
|
|
 |
25bb7d |
- qpol_iterator_t *iter = NULL, *type_iter = NULL;
|
|
 |
25bb7d |
+ qpol_iterator_t *iter = NULL;
|
|
 |
25bb7d |
|
|
 |
25bb7d |
if (t != NULL) {
|
|
 |
25bb7d |
- flags = t->flags;
|
|
 |
25bb7d |
is_regex = t->flags & APOL_QUERY_REGEX;
|
|
 |
25bb7d |
if (t->source != NULL &&
|
|
 |
25bb7d |
(source_list =
|
|
 |
25bb7d |
@@ -104,7 +101,7 @@ int apol_filename_trans_get_by_query(const apol_policy_t * p, const apol_filenam
|
|
 |
25bb7d |
if (qpol_iterator_get_item(iter, (void **)&filename_trans) < 0) {
|
|
 |
25bb7d |
goto cleanup;
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
- int match_source = 0, match_target = 0, match_default = 0, match_bool = 0;
|
|
 |
25bb7d |
+ int match_source = 0, match_target = 0, match_default = 0;
|
|
 |
25bb7d |
size_t i;
|
|
 |
25bb7d |
|
|
 |
25bb7d |
if (source_list == NULL) {
|
|
 |
25bb7d |
@@ -265,10 +262,8 @@ char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filena
|
|
 |
25bb7d |
{
|
|
 |
25bb7d |
char *tmp = NULL;
|
|
 |
25bb7d |
const char *tmp_name = NULL;
|
|
 |
25bb7d |
- const char *filename_trans_type_str;
|
|
 |
25bb7d |
int error = 0;
|
|
 |
25bb7d |
size_t tmp_sz = 0;
|
|
 |
25bb7d |
- uint32_t filename_trans_type = 0;
|
|
 |
25bb7d |
const qpol_type_t *type = NULL;
|
|
 |
25bb7d |
const qpol_class_t *obj_class = NULL;
|
|
 |
25bb7d |
|
|
 |
25bb7d |
diff --git a/libqpol/src/ftrule_query.c b/libqpol/src/ftrule_query.c
|
|
 |
25bb7d |
index d6db848..3148d30 100644
|
|
 |
25bb7d |
--- a/libqpol/src/ftrule_query.c
|
|
 |
25bb7d |
+++ b/libqpol/src/ftrule_query.c
|
|
 |
25bb7d |
@@ -254,7 +254,6 @@ int qpol_filename_trans_get_default_type(const qpol_policy_t * policy, const qpo
|
|
 |
25bb7d |
|
|
 |
25bb7d |
int qpol_filename_trans_get_filename(const qpol_policy_t * policy, const qpol_filename_trans_t * rule, const char ** name)
|
|
 |
25bb7d |
{
|
|
 |
25bb7d |
- policydb_t *db = NULL;
|
|
 |
25bb7d |
filename_trans_t *ft = NULL;
|
|
 |
25bb7d |
|
|
 |
25bb7d |
if (name) {
|
|
 |
25bb7d |
@@ -267,7 +266,6 @@ int qpol_filename_trans_get_filename(const qpol_policy_t * policy, const qpol_fi
|
|
 |
25bb7d |
return STATUS_ERR;
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
|
|
 |
25bb7d |
- db = &policy->p->p;
|
|
 |
25bb7d |
ft = (filename_trans_t *) rule;
|
|
 |
25bb7d |
|
|
 |
25bb7d |
*name = ft->name;
|
|
 |
25bb7d |
diff --git a/secmds/sesearch.c b/secmds/sesearch.c
|
|
 |
25bb7d |
index e44b3bc..319ffe7 100644
|
|
 |
25bb7d |
--- a/secmds/sesearch.c
|
|
 |
25bb7d |
+++ b/secmds/sesearch.c
|
|
 |
25bb7d |
@@ -72,6 +72,7 @@ static struct option const longopts[] = {
|
|
 |
25bb7d |
|
|
 |
25bb7d |
{"source", required_argument, NULL, 's'},
|
|
 |
25bb7d |
{"target", required_argument, NULL, 't'},
|
|
 |
25bb7d |
+ {"default", required_argument, NULL, 'D'},
|
|
 |
25bb7d |
{"role_source", required_argument, NULL, EXPR_ROLE_SOURCE},
|
|
 |
25bb7d |
{"role_target", required_argument, NULL, EXPR_ROLE_TARGET},
|
|
 |
25bb7d |
{"class", required_argument, NULL, 'c'},
|
|
 |
25bb7d |
@@ -92,6 +93,7 @@ typedef struct options
|
|
 |
25bb7d |
{
|
|
 |
25bb7d |
char *src_name;
|
|
 |
25bb7d |
char *tgt_name;
|
|
 |
25bb7d |
+ char *default_name;
|
|
 |
25bb7d |
char *src_role_name;
|
|
 |
25bb7d |
char *tgt_role_name;
|
|
 |
25bb7d |
char *class_name;
|
|
 |
25bb7d |
@@ -293,7 +295,8 @@ static void print_syn_av_results(const apol_policy_t * policy, const options_t *
|
|
 |
25bb7d |
tmp = apol_cond_expr_render(policy, cond);
|
|
 |
25bb7d |
enable_char = (enabled ? 'E' : 'D');
|
|
 |
25bb7d |
branch_char = ((is_true && enabled) || (!is_true && !enabled) ? 'T' : 'F');
|
|
 |
25bb7d |
- asprintf(&expr, "[ %s ]", tmp);
|
|
 |
25bb7d |
+ if (asprintf(&expr, "[ %s ]", tmp) < 0)
|
|
 |
25bb7d |
+ goto cleanup;
|
|
 |
25bb7d |
free(tmp);
|
|
 |
25bb7d |
tmp = NULL;
|
|
 |
25bb7d |
if (!expr)
|
|
 |
25bb7d |
@@ -356,7 +359,8 @@ static void print_av_results(const apol_policy_t * policy, const options_t * opt
|
|
 |
25bb7d |
qpol_iterator_destroy(&iter);
|
|
 |
25bb7d |
enable_char = (enabled ? 'E' : 'D');
|
|
 |
25bb7d |
branch_char = (list ? 'T' : 'F');
|
|
 |
25bb7d |
- asprintf(&expr, "[ %s ]", tmp);
|
|
 |
25bb7d |
+ if (asprintf(&expr, "[ %s ]", tmp) < 0)
|
|
 |
25bb7d |
+ goto cleanup;
|
|
 |
25bb7d |
free(tmp);
|
|
 |
25bb7d |
tmp = NULL;
|
|
 |
25bb7d |
if (!expr)
|
|
 |
25bb7d |
@@ -488,7 +492,8 @@ static void print_syn_te_results(const apol_policy_t * policy, const options_t *
|
|
 |
25bb7d |
tmp = apol_cond_expr_render(policy, cond);
|
|
 |
25bb7d |
enable_char = (enabled ? 'E' : 'D');
|
|
 |
25bb7d |
branch_char = ((is_true && enabled) || (!is_true && !enabled) ? 'T' : 'F');
|
|
 |
25bb7d |
- asprintf(&expr, "[ %s ]", tmp);
|
|
 |
25bb7d |
+ if (asprintf(&expr, "[ %s ]", tmp) < 0)
|
|
 |
25bb7d |
+ goto cleanup;
|
|
 |
25bb7d |
free(tmp);
|
|
 |
25bb7d |
tmp = NULL;
|
|
 |
25bb7d |
if (!expr)
|
|
 |
25bb7d |
@@ -553,7 +558,8 @@ static void print_te_results(const apol_policy_t * policy, const options_t * opt
|
|
 |
25bb7d |
qpol_iterator_destroy(&iter);
|
|
 |
25bb7d |
enable_char = (enabled ? 'E' : 'D');
|
|
 |
25bb7d |
branch_char = (list ? 'T' : 'F');
|
|
 |
25bb7d |
- asprintf(&expr, "[ %s ]", tmp);
|
|
 |
25bb7d |
+ if (asprintf(&expr, "[ %s ]", tmp) < 0)
|
|
 |
25bb7d |
+ goto cleanup;
|
|
 |
25bb7d |
free(tmp);
|
|
 |
25bb7d |
tmp = NULL;
|
|
 |
25bb7d |
if (!expr)
|
|
 |
25bb7d |
@@ -586,7 +592,7 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
|
|
 |
25bb7d |
return -1;
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
|
|
 |
25bb7d |
- if (!opt->type == QPOL_RULE_TYPE_TRANS && !opt->all) {
|
|
 |
25bb7d |
+ if (!opt->type && !opt->all) {
|
|
 |
25bb7d |
*v = NULL;
|
|
 |
25bb7d |
return 0; /* no search to do */
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
@@ -600,17 +606,44 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
|
|
 |
25bb7d |
|
|
 |
25bb7d |
apol_filename_trans_query_set_regex(policy, ftq, opt->useregex);
|
|
 |
25bb7d |
if (opt->src_name) {
|
|
 |
25bb7d |
- if (apol_filename_trans_query_set_source(policy, ftq, opt->src_name)) {
|
|
 |
25bb7d |
+ if (apol_filename_trans_query_set_source(policy, ftq, opt->src_name, opt->indirect)) {
|
|
 |
25bb7d |
error = errno;
|
|
 |
25bb7d |
goto err;
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
+
|
|
 |
25bb7d |
if (opt->tgt_name) {
|
|
 |
25bb7d |
if (apol_filename_trans_query_set_target(policy, ftq, opt->tgt_name, opt->indirect)) {
|
|
 |
25bb7d |
error = errno;
|
|
 |
25bb7d |
goto err;
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
+ if (opt->default_name) {
|
|
 |
25bb7d |
+ if (apol_filename_trans_query_set_default(policy, ftq, opt->default_name)) {
|
|
 |
25bb7d |
+ error = errno;
|
|
 |
25bb7d |
+ goto err;
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
+
|
|
 |
25bb7d |
+ if (opt->class_name) {
|
|
 |
25bb7d |
+ if (opt->class_vector == NULL) {
|
|
 |
25bb7d |
+ if (apol_filename_trans_query_append_class(policy, ftq, opt->class_name)) {
|
|
 |
25bb7d |
+ error = errno;
|
|
 |
25bb7d |
+ goto err;
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
+ } else {
|
|
 |
25bb7d |
+ for (size_t i = 0; i < apol_vector_get_size(opt->class_vector); ++i) {
|
|
 |
25bb7d |
+ char *class_name;
|
|
 |
25bb7d |
+ class_name = apol_vector_get_element(opt->class_vector, i);
|
|
 |
25bb7d |
+ if (!class_name)
|
|
 |
25bb7d |
+ continue;
|
|
 |
25bb7d |
+ if (apol_filename_trans_query_append_class(policy, ftq, class_name)) {
|
|
 |
25bb7d |
+ error = errno;
|
|
 |
25bb7d |
+ goto err;
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
|
|
 |
25bb7d |
if (apol_filename_trans_get_by_query(policy, ftq, v)) {
|
|
 |
25bb7d |
error = errno;
|
|
 |
25bb7d |
@@ -630,37 +663,36 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
|
|
 |
25bb7d |
|
|
 |
25bb7d |
static void print_ft_results(const apol_policy_t * policy, const options_t * opt, const apol_vector_t * v)
|
|
 |
25bb7d |
{
|
|
 |
25bb7d |
- qpol_policy_t *q = apol_policy_get_qpol(policy);
|
|
 |
25bb7d |
- size_t i, num_rules = 0;
|
|
 |
25bb7d |
- const qpol_filename_trans_t *rule = NULL;
|
|
 |
25bb7d |
- char *tmp = NULL, *rule_str = NULL, *expr = NULL;
|
|
 |
25bb7d |
+ size_t i, num_filename_trans = 0;
|
|
 |
25bb7d |
+ const qpol_filename_trans_t *filename_trans = NULL;
|
|
 |
25bb7d |
+ char *tmp = NULL, *filename_trans_str = NULL, *expr = NULL;
|
|
 |
25bb7d |
char enable_char = ' ', branch_char = ' ';
|
|
 |
25bb7d |
qpol_iterator_t *iter = NULL;
|
|
 |
25bb7d |
const qpol_cond_t *cond = NULL;
|
|
 |
25bb7d |
uint32_t enabled = 0, list = 0;
|
|
 |
25bb7d |
|
|
 |
25bb7d |
- if (!(num_rules = apol_vector_get_size(v)))
|
|
 |
25bb7d |
+ if (!(num_filename_trans = apol_vector_get_size(v)))
|
|
 |
25bb7d |
goto cleanup;
|
|
 |
25bb7d |
|
|
 |
25bb7d |
- fprintf(stdout, "Found %zd named file transition rules:\n", num_rules);
|
|
 |
25bb7d |
+ fprintf(stdout, "Found %zd named file transition filename_trans:\n", num_filename_trans);
|
|
 |
25bb7d |
|
|
 |
25bb7d |
- for (i = 0; i < num_rules; i++) {
|
|
 |
25bb7d |
+ for (i = 0; i < num_filename_trans; i++) {
|
|
 |
25bb7d |
enable_char = branch_char = ' ';
|
|
 |
25bb7d |
- if (!(rule = apol_vector_get_element(v, i)))
|
|
 |
25bb7d |
+ if (!(filename_trans = apol_vector_get_element(v, i)))
|
|
 |
25bb7d |
goto cleanup;
|
|
 |
25bb7d |
|
|
 |
25bb7d |
- if (!(rule_str = apol_filename_trans_render(policy, rule)))
|
|
 |
25bb7d |
+ if (!(filename_trans_str = apol_filename_trans_render(policy, filename_trans)))
|
|
 |
25bb7d |
goto cleanup;
|
|
 |
25bb7d |
- fprintf(stdout, "%s %s\n", rule_str, expr ? expr : "");
|
|
 |
25bb7d |
- free(rule_str);
|
|
 |
25bb7d |
- rule_str = NULL;
|
|
 |
25bb7d |
+ fprintf(stdout, "%s %s\n", filename_trans_str, expr ? expr : "");
|
|
 |
25bb7d |
+ free(filename_trans_str);
|
|
 |
25bb7d |
+ filename_trans_str = NULL;
|
|
 |
25bb7d |
free(expr);
|
|
 |
25bb7d |
expr = NULL;
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
|
|
 |
25bb7d |
cleanup:
|
|
 |
25bb7d |
free(tmp);
|
|
 |
25bb7d |
- free(rule_str);
|
|
 |
25bb7d |
+ free(filename_trans_str);
|
|
 |
25bb7d |
free(expr);
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
|
|
 |
25bb7d |
@@ -930,7 +962,7 @@ int main(int argc, char **argv)
|
|
 |
25bb7d |
|
|
 |
25bb7d |
memset(&cmd_opts, 0, sizeof(cmd_opts));
|
|
 |
25bb7d |
cmd_opts.indirect = true;
|
|
 |
25bb7d |
- while ((optc = getopt_long(argc, argv, "ATs:t:c:p:b:dRnSChV", longopts, NULL)) != -1) {
|
|
 |
25bb7d |
+ while ((optc = getopt_long(argc, argv, "ATs:t:c:p:b:dD:RnSChV", longopts, NULL)) != -1) {
|
|
 |
25bb7d |
switch (optc) {
|
|
 |
25bb7d |
case 0:
|
|
 |
25bb7d |
break;
|
|
 |
25bb7d |
@@ -946,6 +978,18 @@ int main(int argc, char **argv)
|
|
 |
25bb7d |
exit(1);
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
break;
|
|
 |
25bb7d |
+ case 'D': /* source */
|
|
 |
25bb7d |
+ if (optarg == 0) {
|
|
 |
25bb7d |
+ usage(argv[0], 1);
|
|
 |
25bb7d |
+ printf("Missing source default type for -D (--default)\n");
|
|
 |
25bb7d |
+ exit(1);
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
+ cmd_opts.default_name = strdup(optarg);
|
|
 |
25bb7d |
+ if (!cmd_opts.default_name) {
|
|
 |
25bb7d |
+
|
|
 |
25bb7d |
+ exit(1);
|
|
 |
25bb7d |
+ }
|
|
 |
25bb7d |
+ break;
|
|
 |
25bb7d |
case 't': /* target */
|
|
 |
25bb7d |
if (optarg == 0) {
|
|
 |
25bb7d |
usage(argv[0], 1);
|
|
 |
25bb7d |
@@ -1218,7 +1262,7 @@ int main(int argc, char **argv)
|
|
 |
25bb7d |
fprintf(stdout, "\n");
|
|
 |
25bb7d |
}
|
|
 |
25bb7d |
|
|
 |
25bb7d |
- if (cmd_opts.all || cmd_opts.type == QPOL_RULE_TYPE_TRANS) {
|
|
 |
25bb7d |
+ if (cmd_opts.all || cmd_opts.type) {
|
|
 |
25bb7d |
apol_vector_destroy(&v);
|
|
 |
25bb7d |
if (perform_ft_query(policy, &cmd_opts, &v)) {
|
|
 |
25bb7d |
rt = 1;
|
|
 |
25bb7d |
--
|
|
 |
25bb7d |
1.7.6.2
|
|
 |
25bb7d |
|