svn commit: r300935 - head/usr.sbin/rpc.statd
Bruce Evans
brde at optusnet.com.au
Sun May 29 08:04:22 UTC 2016
On Sun, 29 May 2016, Garrett Cooper wrote:
> Log:
> Mark out_of_mem(..) and usage(..) with __dead2 as they both directly call exit
> as a hint to static analysis tools
This is bogus for usage() since it is static so only very broken static
analyis tools can't see its full details.
> Modified: head/usr.sbin/rpc.statd/statd.c
> ==============================================================================
> --- head/usr.sbin/rpc.statd/statd.c Sun May 29 04:02:02 2016 (r300934)
> +++ head/usr.sbin/rpc.statd/statd.c Sun May 29 04:18:47 2016 (r300935)
> @@ -72,9 +72,9 @@ static int create_service(struct netconf
> static void complete_service(struct netconfig *nconf, char *port_str);
> static void clearout_service(void);
> static void handle_sigchld(int sig);
> -void out_of_mem(void);
> +void out_of_mem(void) __dead2;
This is even more bogus:
- out_of_mem() is public, and this adds __dead2 in the one place that clearly
doesn't need it
- the declarartions are unsorted internally and externally. Prototypes for
public functions belong in a header file. Some are already there, but
this one is unsorted into the middle of static ones
- however, perhaps this function should be static. It is only directly
referenced in this file. I don't know if it is also referenced in some
other utility or rpc generated code. If so, then these are probably
missing the __dead2.
> -static void usage(void);
> +static void usage(void) __dead2;
There are also many lexical (indentation) style bugs near here, in all of
the newer prototypes starting with handle_sigchld().
>
> int
> main(int argc, char **argv)
> @@ -613,7 +613,7 @@ clearout_service(void)
> }
>
> static void
> -usage()
> +usage(void)
Perhaps Coverity was just complaining about this K&R definition. No change
was needed, since there is a prototype in scope.
Bruce
More information about the svn-src-all
mailing list