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
