On 8/20/24 15:55, Mike Pattrick wrote:
> The Clang analyzer has trouble detecting that functions can never return
> null in certain conditions, this results in several false "Dereference of
> null pointer" detections.
> 
> This patch annotates functions that call ovsdb_error_valist()
> unconditionally as non-null, as this function will either return a valid
> pointer or call abort().
> 
> Signed-off-by: Mike Pattrick <[email protected]>
> ---
>  lib/ovsdb-error.h | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/lib/ovsdb-error.h b/lib/ovsdb-error.h
> index 77a60e074..a63e92b15 100644
> --- a/lib/ovsdb-error.h
> +++ b/lib/ovsdb-error.h
> @@ -20,12 +20,15 @@
>  
>  struct json;
>  
> +OVS_RETURNS_NONNULL
>  struct ovsdb_error *ovsdb_error(const char *tag, const char *details, ...)
>      OVS_PRINTF_FORMAT(2, 3)
>      OVS_WARN_UNUSED_RESULT;

Please, group the function attributes together, there is no need to
define some before and some after the prototype definition.

> +OVS_RETURNS_NONNULL
>  struct ovsdb_error *ovsdb_io_error(int error, const char *details, ...)
>      OVS_PRINTF_FORMAT(2, 3)
>      OVS_WARN_UNUSED_RESULT;
> +OVS_RETURNS_NONNULL
>  struct ovsdb_error *ovsdb_syntax_error(const struct json *, const char *tag,
>                                         const char *details, ...)
>      OVS_PRINTF_FORMAT(3, 4)
> @@ -35,12 +38,14 @@ struct ovsdb_error *ovsdb_wrap_error(struct ovsdb_error 
> *error,
>                                       const char *details, ...)
>      OVS_PRINTF_FORMAT(2, 3);
>  
> +OVS_RETURNS_NONNULL
>  struct ovsdb_error *ovsdb_internal_error(struct ovsdb_error *error,
>                                           const char *file, int line,
>                                           const char *details, ...)
>      OVS_PRINTF_FORMAT(4, 5)
>      OVS_WARN_UNUSED_RESULT;
>  
> +OVS_RETURNS_NONNULL
>  struct ovsdb_error *ovsdb_perm_error(const char *details, ...)
>      OVS_PRINTF_FORMAT(1, 2)
>      OVS_WARN_UNUSED_RESULT;

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to