]> git.ipfire.org Git - location/libloc.git/blobdiff - src/database.c
lua: Fix raising an exception if no network was found
[location/libloc.git] / src / database.c
index de9b02a4d328b4bd7327d2c248fd74fefdf86b69..f6a7c8a3d54186f102cbe319cab37c03d1552e80 100644 (file)
@@ -645,7 +645,7 @@ LOC_EXPORT int loc_database_verify(struct loc_database* db, FILE* f) {
        int sig2_valid = 0;
 
        // Check first signature
-       if (db->signature1.data) {
+       if (db->signature1.length) {
                hexdump(db->ctx, db->signature1.data, db->signature1.length);
 
                r = EVP_DigestVerifyFinal(mdctx,
@@ -665,7 +665,7 @@ LOC_EXPORT int loc_database_verify(struct loc_database* db, FILE* f) {
        }
 
        // Check second signature only when the first one was invalid
-       if (r && db->signature2.data) {
+       if (db->signature2.length) {
                hexdump(db->ctx, db->signature2.data, db->signature2.length);
 
                r = EVP_DigestVerifyFinal(mdctx,
@@ -924,11 +924,12 @@ static int __loc_database_lookup(struct loc_database* db, const struct in6_addr*
        // If this node has a leaf, we will check if it matches
        if (__loc_database_node_is_leaf(node_v1)) {
                r = __loc_database_lookup_handle_leaf(db, address, network, network_address, level, node_v1);
-               if (r <= 0)
+               if (r < 0)
                        return r;
        }
 
-       return 1;
+       // Return no error - even if nothing was found
+       return 0;
 }
 
 LOC_EXPORT int loc_database_lookup(struct loc_database* db,