git: 085ab2c143eb - stable/13 - join(1): Fix ordering in case of missing fields

From: Tijl Coosemans <tijl_at_FreeBSD.org>
Date: Wed, 31 Jan 2024 09:20:03 UTC
The branch stable/13 has been updated by tijl:

URL: https://cgit.FreeBSD.org/src/commit/?id=085ab2c143eb5192ea18b8dd52bd8fa69c9f2d06

commit 085ab2c143eb5192ea18b8dd52bd8fa69c9f2d06
Author:     Tijl Coosemans <tijl@FreeBSD.org>
AuthorDate: 2024-01-22 10:35:31 +0000
Commit:     Tijl Coosemans <tijl@FreeBSD.org>
CommitDate: 2024-01-31 09:19:00 +0000

    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 <martijn@openbsd.org>
    
    (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 35b327c89ee4..c4bd42728fa7 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]));
 }