On 02/05/2016 03:55 PM, Nicolas Iooss wrote: > Variable policy is both a global variable and a parameter to some > functions in policycoreutils/sepolicy/search.c. This makes the building > fail when using -Wshadow -Werror compilation flags. > > Fix this by renaming the global variable global_policy. This does not > change the API of the Python module. > > Signed-off-by: Nicolas Iooss <nicolas.iooss@xxxxxxx> Patchset applied, with a small change in 2/3 to split CFLAGS in two, one with the warning flags, and one with the necessary additional CFLAGS. This matches the style of other makefiles. Thanks! > --- > policycoreutils/sepolicy/info.c | 20 ++++++++++---------- > policycoreutils/sepolicy/policy.c | 10 +++++----- > policycoreutils/sepolicy/policy.h | 2 +- > policycoreutils/sepolicy/search.c | 26 +++++++++++++------------- > 4 files changed, 29 insertions(+), 29 deletions(-) > > diff --git a/policycoreutils/sepolicy/info.c b/policycoreutils/sepolicy/info.c > index 17f5732f2d5c..bbb6844d0b5a 100644 > --- a/policycoreutils/sepolicy/info.c > +++ b/policycoreutils/sepolicy/info.c > @@ -1318,31 +1318,31 @@ PyObject* info( int type, const char *name) > switch(type) { > /* display requested info */ > case TYPE: > - output = get_types(name, policy); > + output = get_types(name, global_policy); > break; > case ATTRIBUTE: > - output = get_attribs(name, policy); > + output = get_attribs(name, global_policy); > break; > case ROLE: > - output = get_roles(name, policy); > + output = get_roles(name, global_policy); > break; > case USER: > - output = get_users(name, policy); > + output = get_users(name, global_policy); > break; > case CLASS: > - output = get_classes(name, policy); > + output = get_classes(name, global_policy); > break; > case BOOLEAN: > - output = get_booleans(name, policy); > + output = get_booleans(name, global_policy); > break; > case PORT: > - output = get_ports(name, policy); > + output = get_ports(name, global_policy); > break; > case SENS: > - output = get_sens(name, policy); > + output = get_sens(name, global_policy); > break; > case CATS: > - output = get_cats(name, policy); > + output = get_cats(name, global_policy); > break; > default: > errno = EINVAL; > @@ -1357,7 +1357,7 @@ PyObject *wrap_info(PyObject *UNUSED(self), PyObject *args){ > int type; > const char *name; > > - if (!policy) { > + if (!global_policy) { > PyErr_SetString(PyExc_RuntimeError,"Policy not loaded"); > return NULL; > } > diff --git a/policycoreutils/sepolicy/policy.c b/policycoreutils/sepolicy/policy.c > index 2a9e1c7cc7a8..b7e3536f7314 100644 > --- a/policycoreutils/sepolicy/policy.c > +++ b/policycoreutils/sepolicy/policy.c > @@ -33,7 +33,7 @@ > #endif > > #include "policy.h" > -apol_policy_t *policy = NULL; > +apol_policy_t *global_policy = NULL; > > /* other */ > #include <errno.h> > @@ -53,8 +53,8 @@ PyObject *wrap_policy(PyObject *UNUSED(self), PyObject *args){ > if (!PyArg_ParseTuple(args, "z", &policy_file)) > return NULL; > > - if (policy) > - apol_policy_destroy(&policy); > + if (global_policy) > + apol_policy_destroy(&global_policy); > > int policy_load_options = 0; > > @@ -66,9 +66,9 @@ PyObject *wrap_policy(PyObject *UNUSED(self), PyObject *args){ > } > apol_vector_destroy(&mod_paths); > > - policy = apol_policy_create_from_policy_path(pol_path, policy_load_options, NULL, NULL); > + global_policy = apol_policy_create_from_policy_path(pol_path, policy_load_options, NULL, NULL); > apol_policy_path_destroy(&pol_path); > - if (!policy) { > + if (!global_policy) { > PyErr_SetString(PyExc_RuntimeError,strerror(errno)); > return NULL; > } > diff --git a/policycoreutils/sepolicy/policy.h b/policycoreutils/sepolicy/policy.h > index d59452a81485..ffac497dccd0 100644 > --- a/policycoreutils/sepolicy/policy.h > +++ b/policycoreutils/sepolicy/policy.h > @@ -1,5 +1,5 @@ > #include <apol/policy.h> > -extern apol_policy_t *policy; > +extern apol_policy_t *global_policy; > extern PyObject *wrap_info(PyObject *self, PyObject *args); > extern void init_info (PyObject *m); > extern PyObject *wrap_search(PyObject *self, PyObject *args); > diff --git a/policycoreutils/sepolicy/search.c b/policycoreutils/sepolicy/search.c > index d9a5aec60c89..d608006d4469 100644 > --- a/policycoreutils/sepolicy/search.c > +++ b/policycoreutils/sepolicy/search.c > @@ -914,23 +914,23 @@ PyObject* search(bool allow, > cmd_opts.perm_vector = apol_vector_create(free); > cmd_opts.permlist = strdup(permlist); > } > - if (!cmd_opts.semantic && qpol_policy_has_capability(apol_policy_get_qpol(policy), QPOL_CAP_SYN_RULES)) { > - if (qpol_policy_build_syn_rule_table(apol_policy_get_qpol(policy))) { > + if (!cmd_opts.semantic && qpol_policy_has_capability(apol_policy_get_qpol(global_policy), QPOL_CAP_SYN_RULES)) { > + if (qpol_policy_build_syn_rule_table(apol_policy_get_qpol(global_policy))) { > PyErr_SetString(PyExc_RuntimeError,"Query failed"); > goto cleanup; > } > } > > /* if syntactic rules are not available always do semantic search */ > - if (!qpol_policy_has_capability(apol_policy_get_qpol(policy), QPOL_CAP_SYN_RULES)) { > + if (!qpol_policy_has_capability(apol_policy_get_qpol(global_policy), QPOL_CAP_SYN_RULES)) { > cmd_opts.semantic = 1; > } > > /* supress line numbers if doing semantic search or not available */ > - if (cmd_opts.semantic || !qpol_policy_has_capability(apol_policy_get_qpol(policy), QPOL_CAP_LINE_NUMBERS)) { > + if (cmd_opts.semantic || !qpol_policy_has_capability(apol_policy_get_qpol(global_policy), QPOL_CAP_LINE_NUMBERS)) { > cmd_opts.lineno = 0; > } > - if (perform_av_query(policy, &cmd_opts, &v)) { > + if (perform_av_query(global_policy, &cmd_opts, &v)) { > goto cleanup; > } > output = PyList_New(0); > @@ -938,36 +938,36 @@ PyObject* search(bool allow, > goto cleanup; > > if (v) { > - get_av_results(policy, v, output); > + get_av_results(global_policy, v, output); > } > > apol_vector_destroy(&v); > - if (perform_te_query(policy, &cmd_opts, &v)) { > + if (perform_te_query(global_policy, &cmd_opts, &v)) { > goto cleanup; > } > if (v) { > - get_te_results(policy, v, output); > + get_te_results(global_policy, v, output); > } > > if (cmd_opts.all || cmd_opts.type) { > apol_vector_destroy(&v); > - if (perform_ft_query(policy, &cmd_opts, &v)) { > + if (perform_ft_query(global_policy, &cmd_opts, &v)) { > goto cleanup; > } > > if (v) { > - get_ft_results(policy, v, output); > + get_ft_results(global_policy, v, output); > } > } > > if (cmd_opts.all || cmd_opts.role_allow) { > apol_vector_destroy(&v); > - if (perform_ra_query(policy, &cmd_opts, &v)) { > + if (perform_ra_query(global_policy, &cmd_opts, &v)) { > goto cleanup; > } > > if (v) { > - get_ra_results(policy, v, output); > + get_ra_results(global_policy, v, output); > } > } > > @@ -1016,7 +1016,7 @@ PyObject *wrap_search(PyObject *UNUSED(self), PyObject *args){ > int transition = Dict_ContainsInt(dict, "transition"); > int role_allow = Dict_ContainsInt(dict, "role_allow"); > > - if (!policy) { > + if (!global_policy) { > PyErr_SetString(PyExc_RuntimeError,"Policy not loaded"); > return NULL; > } > _______________________________________________ Selinux mailing list Selinux@xxxxxxxxxxxxx To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx. To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.