@@ -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;
+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;
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 functiosn that call ovsdb_error_valist() unconditionally as nonnull, as this function will either return a valid pointer or call abort(). Signed-off-by: Mike Pattrick <mkp@redhat.com> --- lib/ovsdb-error.h | 5 +++++ 1 file changed, 5 insertions(+)