Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jan 2002 08:00:06 -0800 (PST)
From:      Maxim Konovalov <maxim@macomnet.ru>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/33771: bug in sendfile implementation if nbytes != 0 and struct sf_hdtr *hdtr->headers != NULL
Message-ID:  <200201221600.g0MG06E22218@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/33771; it has been noted by GNATS.

From: Maxim Konovalov <maxim@macomnet.ru>
To: Vladislav Shabanov <vs@rambler-co.ru>
Cc: freebsd-gnats-submit@FreeBSD.ORG
Subject: Re: kern/33771: bug in sendfile implementation if nbytes != 0 and
 struct sf_hdtr *hdtr->headers != NULL
Date: Tue, 22 Jan 2002 18:59:32 +0300 (MSK)

 Here is a patch:
 
 Index: uipc_syscalls.c
 ===================================================================
 RCS file: /home/ncvs/src/sys/kern/uipc_syscalls.c,v
 retrieving revision 1.65.2.9
 diff -u -r1.65.2.9 uipc_syscalls.c
 --- uipc_syscalls.c	2001/07/31 10:49:39	1.65.2.9
 +++ uipc_syscalls.c	2002/01/22 15:01:42
 @@ -1532,10 +1532,11 @@
  	struct vm_page *pg;
  	struct writev_args nuap;
  	struct sf_hdtr hdtr;
 -	off_t off, xfsize, sbytes = 0;
 +	off_t off, xfsize, hdtr_size, sbytes = 0;
  	int error = 0, s;
 
  	vp = NULL;
 +	hdtr_size = 0;
  	/*
  	 * Do argument checking. Must be a regular file in, stream
  	 * type and connected socket out, positive offset.
 @@ -1591,7 +1592,7 @@
  			error = writev(p, &nuap);
  			if (error)
  				goto done;
 -			sbytes += p->p_retval[0];
 +			hdtr_size += p->p_retval[0];
  		}
  	}
 
 @@ -1831,11 +1832,12 @@
  			error = writev(p, &nuap);
  			if (error)
  				goto done;
 -			sbytes += p->p_retval[0];
 +			hdtr_size += p->p_retval[0];
  	}
 
  done:
  	if (uap->sbytes != NULL) {
 +		sbytes += hdtr_size;
  		copyout(&sbytes, uap->sbytes, sizeof(off_t));
  	}
  	if (vp)
 
 -- 
 Maxim Konovalov, MAcomnet, Internet-Intranet Dept., system engineer
 phone: +7 (095) 796-9079, mailto: maxim@macomnet.ru
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201221600.g0MG06E22218>