Re: [PATCH 1/1] libsemanage: always check append_arg return value

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

 



On Sun, Apr 22, 2018 at 12:30 PM, Nicolas Iooss <nicolas.iooss@xxxxxxx> wrote:
> When split_args() calls append_arg(), the returned value needs to be
> checked in order to detect memory allocation failure. Checks were
> missing in two places, which are spotted by clang's static analyzer:
>
>     semanage_store.c:1352:7: warning: Value stored to 'rc' is never
>     read
>             rc = append_arg(&argv, &num_args, arg);
>             ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     semanage_store.c:1368:3: warning: Value stored to 'rc' is never read
>             rc = append_arg(&argv, &num_args, arg);
>             ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Signed-off-by: Nicolas Iooss <nicolas.iooss@xxxxxxx>
> ---
>  libsemanage/src/semanage_store.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/libsemanage/src/semanage_store.c b/libsemanage/src/semanage_store.c
> index 14ad99c152ad..bce648c46464 100644
> --- a/libsemanage/src/semanage_store.c
> +++ b/libsemanage/src/semanage_store.c
> @@ -1350,6 +1350,8 @@ static char **split_args(const char *arg0, char *arg_string,
>                                 if (isspace(*s) && !in_quote && !in_dquote) {
>                                         if (arg != NULL) {
>                                                 rc = append_arg(&argv, &num_args, arg);
> +                                               if (rc)
> +                                                       goto cleanup;
>                                                 free(arg);
>                                                 arg = NULL;
>                                         }
> @@ -1366,6 +1368,8 @@ static char **split_args(const char *arg0, char *arg_string,
>         }
>         if (arg != NULL) {
>                 rc = append_arg(&argv, &num_args, arg);
> +               if (rc)
> +                       goto cleanup;
>                 free(arg);
>                 arg = NULL;
>         }
> --
> 2.17.0
>
>

ack




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

  Powered by Linux