aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--security/selinux/ss/services.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index 994c824a34c6..aa2bdcb20848 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -2609,18 +2609,12 @@ int security_get_bools(int *len, char ***names, int **values)
2609 goto err; 2609 goto err;
2610 2610
2611 for (i = 0; i < *len; i++) { 2611 for (i = 0; i < *len; i++) {
2612 size_t name_len;
2613
2614 (*values)[i] = policydb.bool_val_to_struct[i]->state; 2612 (*values)[i] = policydb.bool_val_to_struct[i]->state;
2615 name_len = strlen(sym_name(&policydb, SYM_BOOLS, i)) + 1;
2616 2613
2617 rc = -ENOMEM; 2614 rc = -ENOMEM;
2618 (*names)[i] = kmalloc(sizeof(char) * name_len, GFP_ATOMIC); 2615 (*names)[i] = kstrdup(sym_name(&policydb, SYM_BOOLS, i), GFP_ATOMIC);
2619 if (!(*names)[i]) 2616 if (!(*names)[i])
2620 goto err; 2617 goto err;
2621
2622 strncpy((*names)[i], sym_name(&policydb, SYM_BOOLS, i), name_len);
2623 (*names)[i][name_len - 1] = 0;
2624 } 2618 }
2625 rc = 0; 2619 rc = 0;
2626out: 2620out: