diff options
-rw-r--r-- | security/selinux/ss/services.c | 8 |
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; |
2626 | out: | 2620 | out: |