]> granicus.if.org Git - libnl/commitdiff
cache: assert in nl_cache_mngt_register() for valid oo_keygen() function
authorThomas Haller <thaller@redhat.com>
Mon, 24 Nov 2014 18:04:50 +0000 (19:04 +0100)
committerThomas Haller <thaller@redhat.com>
Tue, 25 Nov 2014 09:44:26 +0000 (10:44 +0100)
oo_keygen() requires oo_compare(). Assert in nl_cache_mngt_register().

http://lists.infradead.org/pipermail/libnl/2014-November/001759.html

Acked-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Thomas Haller <thaller@redhat.com>
lib/cache_mngt.c

index 9f8a74209d60d528c2b9c518cb58ef5e50051436..8ed2129de4cb3675fdfde3a25ac27e00d1c4c2bb 100644 (file)
@@ -254,6 +254,9 @@ int nl_cache_mngt_register(struct nl_cache_ops *ops)
        if (!ops->co_name || !ops->co_obj_ops)
                return -NLE_INVAL;
 
+       /* oo_keygen() also needs oo_compare() */
+       BUG_ON (ops->co_obj_ops->oo_keygen && !ops->co_obj_ops->oo_compare);
+
        nl_write_lock(&cache_ops_lock);
        if (__nl_cache_ops_lookup(ops->co_name)) {
                nl_write_unlock(&cache_ops_lock);