Subject: Two bugs in NetBSD-current
To: None <netbsd-bugs@NetBSD.ORG>
From: Michael Joosten <joost@ori.cadlab.de>
List: netbsd-bugs
Date: 09/04/1995 22:25:23
(Jason: I cc'ed this to you because you announced another snapshot)
Today I wondered why cpio via /etc/rmt to remote tape host didn't work at all,
but simply gave me 'Input/Ouput Error' as soon as it allegedly started "rsh
blabla /etc/rmt". Worked when I installed 1.0, became broken in a last month's
snapshot. Turned out that execl ist broken, that is, buildargv(). The
code in GNU cpio-2.3 tries to find 'rsh' the lazy way: just execl()-ing some
paths until it hits. But with the bug in execl, execl() can only called once.
Either there is a 'static memsize' too much, or the explicit initialization of
argv must go:
*** exec.c.orig Mon Sep 4 22:04:02 1995
--- exec.c Mon Sep 4 22:05:04 1995
***************
*** 64,74 ****
const char *arg;
char ***envpp;
{
! static size_t memsize;
static char **argv;
register size_t off;
- argv = NULL;
for (off = 0;; ++off) {
if (off >= memsize) {
memsize += 50; /* Starts out at 0. */
--- 64,73 ----
const char *arg;
char ***envpp;
{
! static size_t memsize = 0;
static char **argv;
register size_t off;
for (off = 0;; ++off) {
if (off >= memsize) {
memsize += 50; /* Starts out at 0. */
Another (minor) nuisance: I brazenly dared to enable root logins via
telnet/rlogin, by just putting a 'secure on' after
ttyp0 none network
But then init really believes in starting a program called 'none' and fills
the console... Not sure if this should rather be fixed in gettyent(), here is
at least a temporary fix for /sbin/init:
*** init/init.c Tue May 30 12:35:00 1995
--- init.mj/init.c Mon Aug 28 19:25:06 1995
***************
*** 914,920 ****
if ((typ->ty_status & TTY_ON) == 0 ||
typ->ty_name == 0 ||
! typ->ty_getty == 0)
return 0;
sp = (session_t *) malloc(sizeof (session_t));
--- 914,920 ----
if ((typ->ty_status & TTY_ON) == 0 ||
typ->ty_name == 0 ||
! typ->ty_getty == 0 || strcmp("none", typ->ty_getty) == 0)
return 0;
sp = (session_t *) malloc(sizeof (session_t));
Ah well, a last one: While I'm used to it, it is still annoying to have the
wrong xterm entries in /etc/termcap (not to mention terminfo...). 'tset' seems
to take the 'rows' value from termcap, and 66 is certainly not what xterm
*normally* has. Dear 'snapshooters', why not using the X11R6 termcap
definitions, as they are (finally!) fixed and use 24 rows.
So far, Michael
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Michael Joosten | Tel. : (+49) (+) 5251-60-6127 |
| CADLAB | Fax : (+49) (+) 5251-60-6065 |
| Fuerstenalle 7 | E-Mail: joost@cadlab.de |
| 33102 Paderborn |Huge Mail to : joost@uni-paderborn.de |
| FRG | |
|--------------------------------------------------------------------------|
| CADLAB is a cooperation between Uni-GH Paderborn & SNI AG |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~