From aaefd6898a73528d3888331a51983cbcc9f06125 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Mon, 22 Jan 2024 11:35:31 +0100 Subject: 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 b9e708dd98cd..eab0dbcac900 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])); } -- cgit v1.2.3