Re: [PATCH 1/4] libsepol/cil: Initialize avtab_datum on declaration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 22, 2024 at 5:09 AM Vit Mojzis <vmojzis@xxxxxxxxxx> wrote:
>
> avtab_datum.xperms was not always initialized before being used.
>
> Fixes:
> Error: UNINIT (CWE-457):
> libsepol-3.7/cil/src/cil_binary.c:977:2: var_decl: Declaring variable "avtab_datum" without initializer.
> libsepol-3.7/cil/src/cil_binary.c:1059:3: uninit_use_in_call: Using uninitialized value "avtab_datum". Field "avtab_datum.xperms" is uninitialized when calling "__cil_cond_insert_rule".
>  \# 1057|                       }
>  \# 1058|               }
>  \# 1059|->             rc = __cil_cond_insert_rule(&pdb->te_cond_avtab, &avtab_key, &avtab_datum, cond_node, cond_flavor);
>  \# 1060|       }
>
> Error: UNINIT (CWE-457):
> libsepol-3.7/cil/src/cil_binary.c:1348:2: var_decl: Declaring variable "avtab_datum" without initializer.
> libsepol-3.7/cil/src/cil_binary.c:1384:3: uninit_use_in_call: Using uninitialized value "avtab_datum". Field "avtab_datum.xperms" is uninitialized when calling "__cil_cond_insert_rule".
>  \# 1382|       } else {
>  \# 1383|               avtab_datum.data = data;
>  \# 1384|->             rc = __cil_cond_insert_rule(&pdb->te_cond_avtab, &avtab_key, &avtab_datum, cond_node, cond_flavor);
>  \# 1385|       }
>  \# 1386|
>
> Signed-off-by: Vit Mojzis <vmojzis@xxxxxxxxxx>
> ---
>  libsepol/cil/src/cil_binary.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libsepol/cil/src/cil_binary.c b/libsepol/cil/src/cil_binary.c
> index 3dec1883..eb6120d9 100644
> --- a/libsepol/cil/src/cil_binary.c
> +++ b/libsepol/cil/src/cil_binary.c
> @@ -975,7 +975,7 @@ static int __cil_insert_type_rule(policydb_t *pdb, uint32_t kind, uint32_t src,
>  {
>         int rc = SEPOL_OK;
>         avtab_key_t avtab_key;
> -       avtab_datum_t avtab_datum;
> +       avtab_datum_t avtab_datum = { .data = res, .xperms = NULL };

Since we are initializing it here, there is no need for the assignment
on line 1000.

>         avtab_ptr_t existing;
>
>         avtab_key.source_type = src;
> @@ -1346,7 +1346,7 @@ static int __cil_insert_avrule(policydb_t *pdb, uint32_t kind, uint32_t src, uin
>  {
>         int rc = SEPOL_OK;
>         avtab_key_t avtab_key;
> -       avtab_datum_t avtab_datum;
> +       avtab_datum_t avtab_datum = { .xperms = NULL };
>         avtab_datum_t *avtab_dup = NULL;
>

I think it would be clearer to just do " = { .data = data, .xperms =
NULL };" and eliminate the assignments on lines 1375 and 1384.

Thanks,
Jim


>         avtab_key.source_type = src;
> --
> 2.47.0
>
>





[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux