On Wed, Feb 3, 2021 at 4:00 AM Nicolas Iooss <nicolas.iooss@xxxxxxx> wrote: > > libsepol/src/roles.c contains functions which do not match its header > file libsepol/include/sepol/roles.h: > > // In roles.c > int sepol_role_exists(sepol_handle_t * handle __attribute__ ((unused)), > sepol_policydb_t * p, const char *role, int *response) > // In roles.h > extern int sepol_role_exists(const sepol_policydb_t * policydb, > const char *role, int *response); > > and: > > // In roles.c > int sepol_role_list(sepol_handle_t * handle, > sepol_policydb_t * p, char ***roles, unsigned int *nroles) > // In roles.h > extern int sepol_role_list(const sepol_policydb_t * policydb, > char ***roles, unsigned int *nroles); > > Instead of fixing the parameter type (using sepol_handle_t or > sepol_policydb_t but not different ones), remove these functions, as > they appear not to be used. They are not exported in libsepol.so. > > Signed-off-by: Nicolas Iooss <nicolas.iooss@xxxxxxx> Acked-by: James Carter <jwcart2@xxxxxxxxx> > --- > libsepol/include/sepol/roles.h | 18 ------------ > libsepol/src/roles.c | 53 ---------------------------------- > 2 files changed, 71 deletions(-) > delete mode 100644 libsepol/include/sepol/roles.h > delete mode 100644 libsepol/src/roles.c > > diff --git a/libsepol/include/sepol/roles.h b/libsepol/include/sepol/roles.h > deleted file mode 100644 > index e750078c8dab..000000000000 > --- a/libsepol/include/sepol/roles.h > +++ /dev/null > @@ -1,18 +0,0 @@ > -#ifndef _SEPOL_ROLES_H_ > -#define _SEPOL_ROLES_H_ > - > -#ifdef __cplusplus > -extern "C" { > -#endif > - > -extern int sepol_role_exists(const sepol_policydb_t * policydb, > - const char *role, int *response); > - > -extern int sepol_role_list(const sepol_policydb_t * policydb, > - char ***roles, unsigned int *nroles); > - > -#ifdef __cplusplus > -} > -#endif > - > -#endif > diff --git a/libsepol/src/roles.c b/libsepol/src/roles.c > deleted file mode 100644 > index 4540cee80e19..000000000000 > --- a/libsepol/src/roles.c > +++ /dev/null > @@ -1,53 +0,0 @@ > -#include <stdlib.h> > -#include <string.h> > - > -#include <sepol/policydb/hashtab.h> > -#include <sepol/policydb/policydb.h> > - > -#include "debug.h" > -#include "handle.h" > - > -/* Check if a role exists */ > -int sepol_role_exists(sepol_handle_t * handle __attribute__ ((unused)), > - sepol_policydb_t * p, const char *role, int *response) > -{ > - > - policydb_t *policydb = &p->p; > - *response = (hashtab_search(policydb->p_roles.table, role) != NULL); > - > - return STATUS_SUCCESS; > -} > - > -/* Fill an array with all valid roles */ > -int sepol_role_list(sepol_handle_t * handle, > - sepol_policydb_t * p, char ***roles, unsigned int *nroles) > -{ > - > - policydb_t *policydb = &p->p; > - unsigned int tmp_nroles = policydb->p_roles.nprim; > - char **tmp_roles = (char **)malloc(tmp_nroles * sizeof(char *)); > - char **ptr; > - unsigned int i; > - if (!tmp_roles) > - goto omem; > - > - for (i = 0; i < tmp_nroles; i++) { > - tmp_roles[i] = strdup(policydb->p_role_val_to_name[i]); > - if (!tmp_roles[i]) > - goto omem; > - } > - > - *nroles = tmp_nroles; > - *roles = tmp_roles; > - > - return STATUS_SUCCESS; > - > - omem: > - ERR(handle, "out of memory, could not list roles"); > - > - ptr = tmp_roles; > - while (ptr && *ptr) > - free(*ptr++); > - free(tmp_roles); > - return STATUS_ERR; > -} > -- > 2.30.0 >