aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTijl Coosemans <tijl@FreeBSD.org>2024-01-22 10:35:31 +0000
committerTijl Coosemans <tijl@FreeBSD.org>2024-01-31 08:53:11 +0000
commitaaefd6898a73528d3888331a51983cbcc9f06125 (patch)
tree058973e9c4eca7030e83dd5ddab3f01a7125ce1e
parentc0565e7d34ac248bf3c20c66f341a64a6e33d6d9 (diff)
downloadsrc-aaefd6898a73528d3888331a51983cbcc9f06125.tar.gz
src-aaefd6898a73528d3888331a51983cbcc9f06125.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> (cherry picked from commit 95bf75895ddcf17402b1f69dce26cb821c922476)
-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 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]));
}