mirror of
https://github.com/SELinuxProject/setools
synced 2025-03-11 07:18:15 +00:00
Treat literal strings as constant
Literal strings are located in read-only memory and should be "const char*". "gcc -Wwrite-strings" warns when using non-const literal strings with messages like: libqpol/policy_parse.y: In function 'yyparse': libqpol/policy_parse.y:381:21: warning: passing argument 1 of 'insert_id' discards 'const' qualifier from pointer target type { if (insert_id("T",0)) return -1; } ^ Fix these warnings by using "const char*" instead of "char*" for some function parameters. This makes gcc report other warnings about hashtab_search (from libsepol). This function incorrectly defines its second parameter as "char *const key" instead of "const char* key" (this fact is hidden behind hashtab_key_t typedef).
This commit is contained in:
parent
2994d1ca1d
commit
edca1ac4c7
@ -1253,7 +1253,7 @@ static int is_scope_in_stack(scope_datum_t * scope, scope_stack_t * stack)
|
|||||||
return is_scope_in_stack(scope, stack->parent);
|
return is_scope_in_stack(scope, stack->parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
int is_id_in_scope(uint32_t symbol_type, hashtab_key_t id)
|
int is_id_in_scope(uint32_t symbol_type, const char *id)
|
||||||
{
|
{
|
||||||
scope_datum_t *scope =
|
scope_datum_t *scope =
|
||||||
(scope_datum_t *) hashtab_search(policydbp->scope[symbol_type].
|
(scope_datum_t *) hashtab_search(policydbp->scope[symbol_type].
|
||||||
@ -1300,7 +1300,7 @@ static int is_perm_in_stack(uint32_t perm_value, uint32_t class_value,
|
|||||||
return is_perm_in_stack(perm_value, class_value, stack->parent);
|
return is_perm_in_stack(perm_value, class_value, stack->parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
int is_perm_in_scope(hashtab_key_t perm_id, hashtab_key_t class_id)
|
int is_perm_in_scope(hashtab_key_t perm_id, const char *class_id)
|
||||||
{
|
{
|
||||||
class_datum_t *cladatum =
|
class_datum_t *cladatum =
|
||||||
(class_datum_t *) hashtab_search(policydbp->p_classes.table,
|
(class_datum_t *) hashtab_search(policydbp->p_classes.table,
|
||||||
|
@ -76,12 +76,12 @@ int require_cat(int pass);
|
|||||||
/* Check if an identifier is within the scope of the current
|
/* Check if an identifier is within the scope of the current
|
||||||
* declaration or any of its parents. Return 1 if it is, 0 if not.
|
* declaration or any of its parents. Return 1 if it is, 0 if not.
|
||||||
* If the identifier is not known at all then return 1 (truth). */
|
* If the identifier is not known at all then return 1 (truth). */
|
||||||
int is_id_in_scope(uint32_t symbol_type, hashtab_key_t id);
|
int is_id_in_scope(uint32_t symbol_type, const char * id);
|
||||||
|
|
||||||
/* Check if a particular permission is within the scope of the current
|
/* Check if a particular permission is within the scope of the current
|
||||||
* declaration or any of its parents. Return 1 if it is, 0 if not.
|
* declaration or any of its parents. Return 1 if it is, 0 if not.
|
||||||
* If the identifier is not known at all then return 1 (truth). */
|
* If the identifier is not known at all then return 1 (truth). */
|
||||||
int is_perm_in_scope(hashtab_key_t perm_id, hashtab_key_t class_id);
|
int is_perm_in_scope(hashtab_key_t perm_id, const char * class_id);
|
||||||
|
|
||||||
/* Search the current avrules block for a conditional with the same
|
/* Search the current avrules block for a conditional with the same
|
||||||
* expression as 'cond'. If the conditional does not exist then
|
* expression as 'cond'. If the conditional does not exist then
|
||||||
|
@ -177,7 +177,7 @@ static void qpol_handle_default_callback(void *varg __attribute__ ((unused)), co
|
|||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int read_source_policy(qpol_policy_t * qpolicy, char *progname, int options)
|
static int read_source_policy(qpol_policy_t * qpolicy, const char *progname, int options)
|
||||||
{
|
{
|
||||||
int load_rules = 1;
|
int load_rules = 1;
|
||||||
if (options & QPOL_POLICY_OPTION_NO_RULES)
|
if (options & QPOL_POLICY_OPTION_NO_RULES)
|
||||||
|
@ -87,7 +87,7 @@ extern int yyerror(const char *msg);
|
|||||||
#define ERRORMSG_LEN 255
|
#define ERRORMSG_LEN 255
|
||||||
static char errormsg[ERRORMSG_LEN + 1] = {0};
|
static char errormsg[ERRORMSG_LEN + 1] = {0};
|
||||||
|
|
||||||
static int id_has_dot(char *id);
|
static int id_has_dot(const char *id);
|
||||||
static int parse_security_context(context_struct_t *c);
|
static int parse_security_context(context_struct_t *c);
|
||||||
|
|
||||||
/* initialize all of the state variables for the scanner/parser */
|
/* initialize all of the state variables for the scanner/parser */
|
||||||
@ -167,7 +167,7 @@ int insert_separator(int push)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int insert_id(char *id, int push)
|
int insert_id(const char *id, int push)
|
||||||
{
|
{
|
||||||
char *newid = 0;
|
char *newid = 0;
|
||||||
int error;
|
int error;
|
||||||
@ -193,7 +193,7 @@ int insert_id(char *id, int push)
|
|||||||
|
|
||||||
/* If the identifier has a dot within it and that its first character
|
/* If the identifier has a dot within it and that its first character
|
||||||
is not a dot then return 1, else return 0. */
|
is not a dot then return 1, else return 0. */
|
||||||
static int id_has_dot(char *id)
|
static int id_has_dot(const char *id)
|
||||||
{
|
{
|
||||||
if (strchr(id, '.') >= id + 1) {
|
if (strchr(id, '.') >= id + 1) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -1380,7 +1380,7 @@ int define_typeattribute(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int define_typebounds_helper(char *bounds_id, char *type_id)
|
static int define_typebounds_helper(const char *bounds_id, const char *type_id)
|
||||||
{
|
{
|
||||||
type_datum_t *bounds, *type;
|
type_datum_t *bounds, *type;
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ int define_typebounds(void);
|
|||||||
int define_type(int alias);
|
int define_type(int alias);
|
||||||
int define_user(void);
|
int define_user(void);
|
||||||
int define_validatetrans(constraint_expr_t *expr);
|
int define_validatetrans(constraint_expr_t *expr);
|
||||||
int insert_id(char *id,int push);
|
int insert_id(const char *id,int push);
|
||||||
int insert_separator(int push);
|
int insert_separator(int push);
|
||||||
role_datum_t *define_role_dom(role_datum_t *r);
|
role_datum_t *define_role_dom(role_datum_t *r);
|
||||||
role_datum_t *merge_roles_dom(role_datum_t *r1,role_datum_t *r2);
|
role_datum_t *merge_roles_dom(role_datum_t *r1,role_datum_t *r2);
|
||||||
|
@ -367,7 +367,7 @@ static int qpol_policy_fill_attr_holes(qpol_policy_t * policy)
|
|||||||
return STATUS_ERR;
|
return STATUS_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *sidnames[] = {
|
static const char *const sidnames[] = {
|
||||||
"undefined",
|
"undefined",
|
||||||
"kernel",
|
"kernel",
|
||||||
"security",
|
"security",
|
||||||
|
Loading…
Reference in New Issue
Block a user