Subject: bin/3050: tip fixes
To: None <gnats-bugs@NetBSD.ORG>
From: None <matthieu@laas.fr>
List: netbsd-bugs
Date: 12/20/1996 11:39:35
>Number: 3050
>Category: bin
>Synopsis: fixes dumps core when using ~> and cannot be restarted
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: bin-bug-people (Utility Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Dec 20 11:50:02 1996
>Last-Modified:
>Originator: Matthieu Herrb
>Organization:
LAAS/CNRS - Toulouse France
>Release: Aug 10 1995
>Environment:
N/A
System: NetBSD cougar 1.0A NetBSD 1.0A (COUGAR) #5: Fri Aug 11 22:14:30 MET DST 1995 matthieu@cougar:/usr/src/sys/arch/i386/compile/COUGAR i386
>Description:
1. If 'eofwrite' is undefined, tip dumps core when using the ~>
file transfer command
2. If a stale lock exists tip cannot override it, emitting the
following message:
Stale lock on tty01 PID=18111... overriding.
/var/spool/lock/LCK..tty01: Invalid argument
Can't seek lock file.
>How-To-Repeat:
start tip with a remote entry that does not define the 'oe'
capacity, for instance:
tty01:dv=/dev/tty01:br#9600:pa=none:
then send a file using ~>
after the tip crash, try to restart it to observ the 2nd
problem.
>Fix:
Apply this patch:
--- cmds.c~ Sun Dec 25 12:30:28 1994
+++ cmds.c Sat Aug 12 17:16:13 1995
@@ -364,8 +364,9 @@
out:
if (lastc != '\n' && !boolean(value(RAWFTP)))
send('\r');
- for (pc = eofchars; *pc; pc++)
- send(*pc);
+ if (eofchars != NOSTR)
+ for (pc = eofchars; *pc; pc++)
+ send(*pc);
stop_t = time(0);
fclose(fd);
signal(SIGINT, f);
--- uucplock.c~ Sun Dec 25 12:30:30 1994
+++ uucplock.c Sat Aug 12 17:10:11 1995
@@ -41,6 +41,7 @@
#endif /* not lint */
#include <stdio.h>
+#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/file.h>
@@ -60,7 +61,6 @@
extern int errno;
int fd, pid;
char tbuf[sizeof(_PATH_LOCKDIRNAME) + MAXNAMLEN];
- off_t lseek();
char text_pid[81];
int len;
@@ -97,7 +97,7 @@
*/
fprintf(stderr, "Stale lock on %s PID=%d... overriding.\n",
ttyname, pid);
- if (lseek(fd, 0L, L_SET) < 0) {
+ if (lseek(fd, (off_t)0, L_SET) < 0) {
perror(tbuf);
(void)close(fd);
fprintf(stderr, "Can't seek lock file.\n");
>Audit-Trail:
>Unformatted: