From: fcambus Date: Fri, 2 Jun 2017 20:02:39 +0000 (+0000) Subject: Fix an infinite loop in fortune(6). X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=f194f74eddd6d4379a9f1bdeb151cef6dd42ef07;p=openbsd Fix an infinite loop in fortune(6). When invoking fortune with the -l option (to get long dictums only), the program gets stuck in an infinite loop because fortlen() doesn't return the fortune length correctly. OK mestre@, tb@, deraadt@, schwarze@ --- diff --git a/games/fortune/fortune/fortune.c b/games/fortune/fortune/fortune.c index 4d9cd4242e8..41b5b179ebd 100644 --- a/games/fortune/fortune/fortune.c +++ b/games/fortune/fortune/fortune.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fortune.c,v 1.55 2016/03/07 22:49:45 tb Exp $ */ +/* $OpenBSD: fortune.c,v 1.56 2017/06/02 20:02:39 fcambus Exp $ */ /* $NetBSD: fortune.c,v 1.8 1995/03/23 08:28:40 cgd Exp $ */ /*- @@ -218,7 +218,7 @@ fortlen(void) char line[BUFSIZ]; if (!(Fortfile->tbl.str_flags & (STR_RANDOM | STR_ORDERED))) - nchar = (Seekpts[1] - Seekpts[0] <= SLEN); + nchar = Seekpts[1] - Seekpts[0]; else { open_fp(Fortfile); (void) fseek(Fortfile->inf, (long)Seekpts[0], SEEK_SET);