diff options
Diffstat (limited to 'security/selinux/ss/services.c')
| -rw-r--r-- | security/selinux/ss/services.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index ab0cc0c7b944..343c8ab14af0 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c | |||
| @@ -2955,7 +2955,7 @@ netlbl_secattr_to_sid_return_cleanup: | |||
| 2955 | */ | 2955 | */ |
| 2956 | int security_netlbl_sid_to_secattr(u32 sid, struct netlbl_lsm_secattr *secattr) | 2956 | int security_netlbl_sid_to_secattr(u32 sid, struct netlbl_lsm_secattr *secattr) |
| 2957 | { | 2957 | { |
| 2958 | int rc = -ENOENT; | 2958 | int rc; |
| 2959 | struct context *ctx; | 2959 | struct context *ctx; |
| 2960 | 2960 | ||
| 2961 | if (!ss_initialized) | 2961 | if (!ss_initialized) |
| @@ -2963,11 +2963,18 @@ int security_netlbl_sid_to_secattr(u32 sid, struct netlbl_lsm_secattr *secattr) | |||
| 2963 | 2963 | ||
| 2964 | read_lock(&policy_rwlock); | 2964 | read_lock(&policy_rwlock); |
| 2965 | ctx = sidtab_search(&sidtab, sid); | 2965 | ctx = sidtab_search(&sidtab, sid); |
| 2966 | if (ctx == NULL) | 2966 | if (ctx == NULL) { |
| 2967 | rc = -ENOENT; | ||
| 2967 | goto netlbl_sid_to_secattr_failure; | 2968 | goto netlbl_sid_to_secattr_failure; |
| 2969 | } | ||
| 2968 | secattr->domain = kstrdup(policydb.p_type_val_to_name[ctx->type - 1], | 2970 | secattr->domain = kstrdup(policydb.p_type_val_to_name[ctx->type - 1], |
| 2969 | GFP_ATOMIC); | 2971 | GFP_ATOMIC); |
| 2970 | secattr->flags |= NETLBL_SECATTR_DOMAIN_CPY; | 2972 | if (secattr->domain == NULL) { |
| 2973 | rc = -ENOMEM; | ||
| 2974 | goto netlbl_sid_to_secattr_failure; | ||
| 2975 | } | ||
| 2976 | secattr->attr.secid = sid; | ||
| 2977 | secattr->flags |= NETLBL_SECATTR_DOMAIN_CPY | NETLBL_SECATTR_SECID; | ||
| 2971 | mls_export_netlbl_lvl(ctx, secattr); | 2978 | mls_export_netlbl_lvl(ctx, secattr); |
| 2972 | rc = mls_export_netlbl_cat(ctx, secattr); | 2979 | rc = mls_export_netlbl_cat(ctx, secattr); |
| 2973 | if (rc != 0) | 2980 | if (rc != 0) |
