zsh-workers
 help / color / mirror / code / Atom feed
From: Zoltan Hidvegi <hzoli@cs.elte.hu>
To: rjones@pobox.com
Cc: zsh-workers@math.gatech.edu
Subject: Re: problem with multios on irix 5.3, zsh 3.0.1
Date: Tue, 12 Nov 1996 22:29:29 +0100 (MET)	[thread overview]
Message-ID: <199611122129.WAA13225@bolyai.cs.elte.hu> (raw)
In-Reply-To: <9611122110.AA08691@dbank> from "rjones@pobox.com" at "Nov 12, 96 02:09:56 pm"

rjones@pobox.com wrote:
> i built zsh 3.0.1 "out-of-the-box", didn't get any compiler errors,
> etc. on an irix 5.3 system.
> 
> i discovered this possible bug:
> 
> in a directory with a large number of files:
> 
> % cat < * > /dev/null
> 
> this gives a seg fault on irix.  on solaris, according to a friend, it
> just stops at the 54th file.  my best guess is that the fdtable is
> filling up.  there don't seem to be any upper-bounds checks in the
> functions in util.c that deal with fdtable.  no lower bound check in
> zclose, either, so sometimes max_zsh_fd can go beyond the end of the
> array or go negative (unless there's some invariant condition that keeps
> it from going negative.  some debugging seemed to indicate that it was
> going neg, though.).

It may be the problem.  The lower bound check was missing indeed and it was
fixed a few weeks ago.  The upeer bound check is not necessary if the
fdtable is as big as the maximum number of open file descriptors of the OS.
Try to modify the

#  define OPEN_MAX 20

line in system.c, give it a bigger value (64 or 256) and see if it stops
the coredump.  The missing lower bound check is of course a bug but it
cannot cause coredumps or any noticable problems.

> fdtable[pipes[!out]] = 2;
> 
> it may be ansi-acceptable to trust "!" to always return 0 or 1, but
> this would probably be easier to read if it were
> 
> fdtable[pipes[out ? 0 : 1]] = 2;

out is always zero or one here.  Here is a piece of code:

        zclose(pipes[out]);
        fdtable[pipes[!out]] = 2;

In that case !out is more clear and it really means the opposite of out.
Writing out ? 1 : 0 produces less efficient machine code.

Zoltan


  reply	other threads:[~1996-11-12 21:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-11-12 21:09 rjones
1996-11-12 21:29 ` Zoltan Hidvegi [this message]
1996-11-12 21:52 rjones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=199611122129.WAA13225@bolyai.cs.elte.hu \
    --to=hzoli@cs.elte.hu \
    --cc=rjones@pobox.com \
    --cc=zsh-workers@math.gatech.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).