From 085ab2c143eb5192ea18b8dd52bd8fa69c9f2d06 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Mon, 22 Jan 2024 11:35:31 +0100 Subject: [PATCH] join(1): Fix ordering in case of missing fields The comparison function had the ordering reversed causing join(1) to miss some matching lines. PR: 232405 Submitted by: Martijn van Duren (cherry picked from commit 95bf75895ddcf17402b1f69dce26cb821c922476) --- usr.bin/join/join.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.bin/join/join.c b/usr.bin/join/join.c index 35b327c89ee..c4bd42728fa 100644 --- a/usr.bin/join/join.c +++ b/usr.bin/join/join.c @@ -392,9 +392,9 @@ static int cmp(LINE *lp1, u_long fieldno1, LINE *lp2, u_long fieldno2) { if (lp1->fieldcnt <= fieldno1) - return (lp2->fieldcnt <= fieldno2 ? 0 : 1); + return (lp2->fieldcnt <= fieldno2 ? 0 : -1); if (lp2->fieldcnt <= fieldno2) - return (-1); + return (1); return (mbscoll(lp1->fields[fieldno1], lp2->fields[fieldno2])); } -- 2.45.0