From cefe4f6fa2b547fd373216356ca650551f1e8125 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Fri, 17 Jan 1997 18:55:05 +0000 Subject: [PATCH] Fix a genuine off-by-one error that caused join to dump core when trying to use field numbers tha weren't present in the input data. --- usr.bin/join/join.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.bin/join/join.c b/usr.bin/join/join.c index 15d77ff0013b..a3efd7e2a2c3 100644 --- a/usr.bin/join/join.c +++ b/usr.bin/join/join.c @@ -352,9 +352,9 @@ cmp(lp1, fieldno1, lp2, fieldno2) LINE *lp1, *lp2; u_long fieldno1, fieldno2; { - if (lp1->fieldcnt < fieldno1) + if (lp1->fieldcnt <= fieldno1) return (lp2->fieldcnt < fieldno2 ? 0 : 1); - if (lp2->fieldcnt < fieldno2) + if (lp2->fieldcnt <= fieldno2) return (-1); return (strcmp(lp1->fields[fieldno1], lp2->fields[fieldno2])); } @@ -450,7 +450,7 @@ outfield(lp, fieldno, out_empty) if (needsep++) (void)printf("%c", *tabchar); if (!ferror(stdout)) - if (lp->fieldcnt < fieldno || out_empty) { + if (lp->fieldcnt <= fieldno || out_empty) { if (empty != NULL) (void)printf("%s", empty); } else {