From patchwork Fri Jun 27 19:53:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adolf Belka X-Patchwork-Id: 8855 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4bTR8B60z2z3xTL for ; Fri, 27 Jun 2025 19:54:02 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E5" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bTR882D7gz6X0 for ; Fri, 27 Jun 2025 19:54:00 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4bTR881WQkz33B0 for ; Fri, 27 Jun 2025 19:54:00 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4bTR851hN8z2xZn for ; Fri, 27 Jun 2025 19:53:57 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4bTR836fXXz10R; Fri, 27 Jun 2025 19:53:55 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1751054036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=ri9xPxmSqvLaUvvA1VMD8KKOc285AXjfKN0RB3+ODs8=; b=powl+Svs9MrPcVsRCF7LVwP1p3vfSdLzB4HRdLyUK0EAKOkn4V6kQ0a/Y9v+7GUUt6KrHP /w6x2XScInO8SQCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1751054036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=ri9xPxmSqvLaUvvA1VMD8KKOc285AXjfKN0RB3+ODs8=; b=vcqsfE7aI29clhX+c4E/MpS9ZrchQgHeqIzbyt3Kf3tpUfrZz/SZJVKtt0aDYas3H0oY4U ii6/VcsX8CneO4wKq3gCCbYGREQ+cG91D0QhIaBMBRe9MjW365kuhIdrDPvo46+KZRAsfH JRvQkeHUWtbhJnsCzD7k/tUY/dsvDHLhsWLA9tABjOWOjzeTs5n5LjrIylfCqc5xwHO54j 656+GStlo1Iu526qgKkYnwv9HtUpQrUGrYpziPHlzyoIsXfFW24G6G8IHGjcxeRCBah0md gWs4RN5IebJNeK8T3Jp1g+WcmRkAxmQ830p0Opz+JGpWQfA8UEqrtN5D3y2P4A== From: Adolf Belka To: development@lists.ipfire.org Cc: Adolf Belka , Michael Tremer Subject: [PATCH 1/2] libloc: Fixes bug13861 - libloc-0.9.18 fails to find some ASN info Date: Fri, 27 Jun 2025 21:53:50 +0200 Message-ID: <20250627195351.3341456-1-adolf.belka@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 - Patch added to fix bactracking after no match found bug. When the next version of libloc is released then this patch can be removed as the patch will be integrated in with that version. - Update of rootfile not required. - Tested out on local build of libloc-0.9.18 Fixes: bug13861 Reported-by: Adolf Belka Suggested-by: Michael Tremer Tested-by: Adolf Belka Signed-off-by: Adolf Belka --- lfs/libloc | 1 + ...tch_was_found_at_the_end_of_the_tree.patch | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/patches/libloc-0.9.18_Fix_backtracking_after_no_match_was_found_at_the_end_of_the_tree.patch diff --git a/lfs/libloc b/lfs/libloc index f2f0aa8a9..e9bbe16ba 100644 --- a/lfs/libloc +++ b/lfs/libloc @@ -82,6 +82,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # https://lists.ipfire.org/pipermail/development/2022-November/014763.html cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libloc-0.9.18-Revert-Install-Perl-files-to-Perl-vendor-directory.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libloc-0.9.18_gettext-0.25_fix.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libloc-0.9.18_Fix_backtracking_after_no_match_was_found_at_the_end_of_the_tree.patch cd $(DIR_APP) && ./autogen.sh cd $(DIR_APP) && ./configure \ --prefix=/usr \ diff --git a/src/patches/libloc-0.9.18_Fix_backtracking_after_no_match_was_found_at_the_end_of_the_tree.patch b/src/patches/libloc-0.9.18_Fix_backtracking_after_no_match_was_found_at_the_end_of_the_tree.patch new file mode 100644 index 000000000..6ac9acf3c --- /dev/null +++ b/src/patches/libloc-0.9.18_Fix_backtracking_after_no_match_was_found_at_the_end_of_the_tree.patch @@ -0,0 +1,31 @@ +X-Git-Url: http://git.ipfire.org/?p=location%2Flibloc.git;a=blobdiff_plain;f=src%2Fdatabase.c;h=c251061cc8a254879491ebe133b1b4f3b58ddf30;hp=0c8608542aaad6e82c4d8602bbeb388ab43225bb;hb=95d271bb90b4cebe81c288a95a2336aa63bac4d7;hpb=d1120513a30de43308d9ed848f7ef3c6ede6d767 + +diff --git a/src/database.c b/src/database.c +index 0c86085..c251061 100644 +--- a/src/database.c ++++ b/src/database.c +@@ -907,13 +907,7 @@ static int __loc_database_lookup(struct loc_database* db, const struct in6_addr* + + // Move on to the next node + r = __loc_database_lookup(db, address, network, network_address, node_index, level + 1); +- +- // End here if a result was found +- if (r == 0) +- return r; +- +- // Raise any errors +- else if (r < 0) ++ if (r < 0) + return r; + + DEBUG(db->ctx, "No match found below level %u\n", level); +@@ -922,7 +916,7 @@ 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)) { ++ if (!*network && __loc_database_node_is_leaf(node_v1)) { + r = __loc_database_lookup_handle_leaf(db, address, network, network_address, level, node_v1); + if (r < 0) + return r; +