| www.delorie.com/archives/browse.cgi | search |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sources.redhat.com/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| To: | cygwin AT cygwin DOT com |
| X-Injected-Via-Gmane: | http://gmane.org/ |
| Path: | not-for-mail |
| From: | Joe Buehler <jbuehler AT hekimian DOT com> |
| Newsgroups: | gmane.os.cygwin |
| Subject: | off-by-one problem in dtable.cc? |
| Date: | Mon, 24 Jun 2002 16:00:55 -0400 |
| Lines: | 26 |
| Message-ID: | <3D177A77.3030400@hekimian.com> |
| NNTP-Posting-Host: | hekimian.com |
| Mime-Version: | 1.0 |
| X-Trace: | main.gmane.org 1024948839 16712 206.205.138.10 (24 Jun 2002 20:00:39 GMT) |
| X-Complaints-To: | usenet AT main DOT gmane DOT org |
| NNTP-Posting-Date: | Mon, 24 Jun 2002 20:00:39 +0000 (UTC) |
| User-Agent: | Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.0.0) Gecko/20020530 |
| X-Accept-Language: | en-us, en |
The following code in dtable::dup2() determines whether the fd table
should be expanded, and how much
if ((size_t) newfd >= size)
{
int inc_size = NOFILE_INCR * ((newfd + NOFILE_INCR - 1) / NOFILE_INCR) -
size;
extend (inc_size);
}
Consider:
NOFILE_INCR is #defined to be 32. If size is 32, and newfd is 32, then
inc_size will be: 32 * ((32 + 32 - 1) / 32) - 32 == 0, so the fdtable
will not be expanded, and interesting things will undoubtedly ensue!
I think it should be:
if ((size_t) newfd >= size)
{
int inc_size = NOFILE_INCR * (newfd / NOFILE_INCR + 1) - size;
extend (inc_size);
}
Joe Buehler
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |