[PATCH] pwdgrp.c: Changed assert to void to fix runtime issues (CID #1399781)

Ryan Long ryan.long at oarcorp.com
Thu Mar 18 15:45:13 UTC 2021


I didn't make another ticket. I didn't know if I needed to since this was a fix for a previous commit that was merged. Should I?

Moving/removing the CID number is fine with me. Whatever y'all think is best. I think having something in the commit message to identify that it was a Coverity issue fix is helpful though.

-----Original Message-----
From: Gedare Bloom <gedare at rtems.org> 
Sent: Thursday, March 18, 2021 10:37 AM
To: Ryan Long <ryan.long at oarcorp.com>
Cc: devel at rtems.org
Subject: Re: [PATCH] pwdgrp.c: Changed assert to void to fix runtime issues (CID #1399781)

Ignoring the first line of commit issue...

On Thu, Mar 18, 2021 at 8:29 AM Ryan Long <ryan.long at oarcorp.com> wrote:
>
> Changed the _Assert_unused_value_equals macro to just a void due to 
> /etc having already been created by the network stack initialization 
> or an initial filesystem image.

Is there a related ticket?

IMO, the CID can be buried down here in the commit message somewhere.
Practically speaking, and I've said it before, the CIDs are a bit meaningless since they are outside our control and sit behind an authentication mechanism.

> ---
>  cpukit/libcsupport/src/pwdgrp.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/cpukit/libcsupport/src/pwdgrp.c 
> b/cpukit/libcsupport/src/pwdgrp.c index f4a10f7..edc8aff 100644
> --- a/cpukit/libcsupport/src/pwdgrp.c
> +++ b/cpukit/libcsupport/src/pwdgrp.c
> @@ -36,7 +36,6 @@
>  #include <stdint.h>
>
>  #include <rtems/seterr.h>
> -#include <rtems/score/assert.h>
>
>  #include "pwdgrp.h"
>
> @@ -63,13 +62,13 @@ static void init_file(const char *name, const char *content)
>   */
>  static void pwdgrp_init(void)
>  {
> -  int sc;
> -
>    /*
>     * Do the best to create this directory.
> +   *
> +   * /etc could be created by the network stack initialization or an initial
> +   * filesystem image. Deliberately ignore the return value.
>     */
> -  sc = mkdir("/etc", S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | 
> S_IXOTH);
> -  _Assert_Unused_variable_equals(sc, 0);
> +  (void) mkdir("/etc", S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | 
> + S_IXOTH);
>
Is it better to ignore the return value, or should there be debug checking of errno values? I think the only valid return of -1 would be with errno==EEXIST.

>    /*
>     *  Initialize /etc/passwd
> --
> 1.8.3.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list