aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/join
diff options
context:
space:
mode:
authorTijl Coosemans <tijl@FreeBSD.org>2024-01-22 10:35:31 +0000
committerTijl Coosemans <tijl@FreeBSD.org>2024-01-24 09:58:00 +0000
commit95bf75895ddcf17402b1f69dce26cb821c922476 (patch)
treec55c01fc6e6eba64e9789b53ff8b67b779075c22 /usr.bin/join
parent7304bd7a526cbfc049d0348fe72c93f5309065d0 (diff)
downloadsrc-95bf75895ddcf17402b1f69dce26cb821c922476.tar.gz
src-95bf75895ddcf17402b1f69dce26cb821c922476.zip
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> MFC after: 1 week
Diffstat (limited to 'usr.bin/join')
-rw-r--r--usr.bin/join/join.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.bin/join/join.c b/usr.bin/join/join.c
index 09263ea16c22..b1be8cd81690 100644
--- a/usr.bin/join/join.c
+++ b/usr.bin/join/join.c
@@ -380,9 +380,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]));
}