From owner-freebsd-bugs@FreeBSD.ORG Mon Jul 5 09:30:14 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4019F16A4D9 for ; Mon, 5 Jul 2004 09:30:14 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 204BB43D55 for ; Mon, 5 Jul 2004 09:30:14 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.11/8.12.11) with ESMTP id i659UEGc044264 for ; Mon, 5 Jul 2004 09:30:14 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.11/8.12.11/Submit) id i659UDfQ044263; Mon, 5 Jul 2004 09:30:14 GMT (envelope-from gnats) Resent-Date: Mon, 5 Jul 2004 09:30:14 GMT Resent-Message-Id: <200407050930.i659UDfQ044263@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Xin LI Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9B1BF16A4CF for ; Mon, 5 Jul 2004 09:26:43 +0000 (GMT) Received: from mail.FreeBSD.org.cn (dns3.freebsd.org.cn [61.129.66.75]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0F43243D39 for ; Mon, 5 Jul 2004 09:26:42 +0000 (GMT) (envelope-from delphij@frontfree.net) Received: (qmail 79947 invoked by uid 0); 5 Jul 2004 09:25:04 -0000 Received: from unknown (HELO beastie.frontfree.net) (218.107.145.7) by mail.FreeBSD.org.cn with AES256-SHA encrypted SMTP; 5 Jul 2004 09:25:04 -0000 Received: from localhost (localhost.frontfree.net [127.0.0.1]) by beastie.frontfree.net (Postfix) with ESMTP id BF6EF11785 for ; Mon, 5 Jul 2004 17:26:09 +0800 (CST) Received: from beastie.frontfree.net ([127.0.0.1]) by localhost (beastie.frontfree.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 04071-07 for ; Mon, 5 Jul 2004 17:26:09 +0800 (CST) Received: by beastie.frontfree.net (Postfix, from userid 1001) id BD33C1148A; Mon, 5 Jul 2004 17:26:08 +0800 (CST) Message-Id: <20040705092608.BD33C1148A@beastie.frontfree.net> Date: Mon, 5 Jul 2004 17:26:08 +0800 (CST) From: Xin LI To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/68683: [PATCH] cron: Fix parsing of '0' and non-alphanumerics in steps X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Xin LI List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jul 2004 09:30:14 -0000 >Number: 68683 >Category: bin >Synopsis: [PATCH] cron: Fix parsing of '0' and non-alphanumerics in steps >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Jul 05 09:30:13 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Xin LI >Release: FreeBSD 5.2-delphij i386 >Organization: The FreeBSD Simplified Chinese Project >Environment: System: FreeBSD beastie.frontfree.net 5.2-delphij FreeBSD 5.2-delphij #80: Thu Jun 24 17:30:33 CST 2004 delphij@beastie.frontfree.net:/usr/obj/usr/src/sys/BEASTIE i386 >Description: Having an entry with stepping value of zero, say, */0, is currently permitted by cron(5) however that will lead to a 100% CPU load. This should be either documented in crontab(5), or be handled properly (preferred). The attached patch brings OpenBSD src/usr.sbin/cron/entry.c,v 1.17's changes to FreeBSD, which will solve the issue. >How-To-Repeat: Have a similiar line like this, in /etc/crontab */0 * * * * operator /usr/local/bin/test >Fix: --- patch-cron begins here --- Index: entry.c =================================================================== RCS file: /home/fcvs/src/usr.sbin/cron/lib/entry.c,v retrieving revision 1.15 diff -u -r1.15 entry.c --- entry.c 16 Aug 2001 14:23:59 -0000 1.15 +++ entry.c 5 Jul 2004 09:17:45 -0000 @@ -543,7 +543,7 @@ * sent as a 0 since there is no offset either. */ ch = get_number(&num3, 0, PPC_NULL, ch, file); - if (ch == EOF) + if (ch == EOF || num3 == 0) return EOF; } else { /* no step. default==1. @@ -592,6 +592,8 @@ ch = get_char(file); } *pc = '\0'; + if (len == 0) + return (EOF); /* try to find the name in the name list */ --- patch-cron ends here --- >Release-Note: >Audit-Trail: >Unformatted: