From owner-freebsd-bugs Mon Jan 21 6:50:22 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id A002D37B41A for ; Mon, 21 Jan 2002 06:50:03 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g0LEo2U40233; Mon, 21 Jan 2002 06:50:02 -0800 (PST) (envelope-from gnats) Received: from glass.dc.luth.se (glass.dc.luth.se [130.240.42.240]) by hub.freebsd.org (Postfix) with ESMTP id 3AD3737B41C for ; Mon, 21 Jan 2002 06:43:59 -0800 (PST) Received: (from pantzer@localhost) by glass.dc.luth.se (8.11.6/8.11.6) id g0LFZn907416; Mon, 21 Jan 2002 16:35:49 +0100 (CET) (envelope-from pantzer) Message-Id: <200201211535.g0LFZn907416@glass.dc.luth.se> Date: Mon, 21 Jan 2002 16:35:49 +0100 (CET) From: Mattias Pantzare Reply-To: Mattias Pantzare To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.113 Subject: bin/34117: ftpd enters endless sendfile loop Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 34117 >Category: bin >Synopsis: ftpd enters endless sendfile loop >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jan 21 06:50:02 PST 2002 >Closed-Date: >Last-Modified: >Originator: Mattias Pantzare >Release: FreeBSD 4.5-RC1 i386 >Organization: >Environment: System: FreeBSD glass.dc.luth.se 4.5-RC1 FreeBSD 4.5-RC1 #1: Thu Jan 17 21:45:48 CET 2002 root@glass.dc.luth.se:/usr/src/sys/compile/GLASS i386 >Description: ftpd on FreeBSD can enter an endless loop on big files. >How-To-Repeat: ftp a big file from a FreeBSD ftpd. (5Gb) >Fix: *** ftpd.c.org Mon Jan 21 13:52:26 2002 --- ftpd.c Mon Jan 21 13:59:10 2002 *************** *** 1782,1788 **** len = filesize; err = cnt = offset = 0; ! while (err != -1 && cnt < filesize) { err = sendfile(filefd, netfd, offset, len, (struct sf_hdtr *) NULL, &cnt, 0); byte_count += cnt; --- 1782,1788 ---- len = filesize; err = cnt = offset = 0; ! while (err != -1 && offset < filesize) { err = sendfile(filefd, netfd, offset, len, (struct sf_hdtr *) NULL, &cnt, 0); byte_count += cnt; >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message