Thread View: comp.bugs.sys5
2 messages
2 total messages
Started by Eric S. Raymond
Sun, 07 May 1989 15:49
Serious misfeature in smail2.2 under SVr3
Author: Eric S. Raymond
Date: Sun, 07 May 1989 15:49
Date: Sun, 07 May 1989 15:49
79 lines
2676 bytes
2676 bytes
THE SYMPTOM:
On SVr3.0 and later UNIXes installation of smail2.3 may cause /etc/profile
processing to hang, preventing users (including root!) from logging in. This
behavior was first observed on a Toshiba 5100 running T/PIX.
THE PROBLEM:
These systems call mail -e to check mail. The svbinmail supplied with 2.3
and earlier versions of smail interprets -e as a directive to go into reader
mode, waiting for input. Because /etc/profile typically traps and eats
interrupts, this can result in a hang and serious lossage.
THE FIX:
Teach svbinmail how to do `mail -e' properly. This fix should be portable
to BSD systems, but has been tested unly on SV. It is not complicated.
To apply, simply pipe this article through patch -d <smaildir>/src where
<smaildir> is your toplevel smail source directory.
SMAIL 3.0 DEVELOPERS:
Please incorporate this code or equivalent. The last thing we need is
for this bug to survive in your stuff...
*** svbinmail.c.old Sat May 6 09:04:11 1989
--- svbinmail.c Sat May 6 10:03:07 1989
***************
*** 11,21 ****
--- 11,26 ----
/* */
#include <stdio.h>
+ #include <pwd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
#include "defs.h"
#ifdef BSD
#include <strings.h>
+ #define MAILDIR "/usr/spool/mail/%s"
#else
#include <string.h>
+ #define MAILDIR "/usr/mail/%s"
#endif
#ifdef SENDMAIL
***************
*** 32,37 ****
--- 37,43 ----
char prog[128];
void perror(), exit(), usage();
+ struct passwd *getpwuid();
main(argc, argv)
int argc;
***************
*** 53,58 ****
--- 59,79 ----
while((c = getopt(argc, argv, "epqrtf:")) != EOF) {
switch(c) {
case 'e':
+ {
+ char mailfile[BUFSIZ];
+ struct stat stbuf;
+ struct passwd *pw;
+
+ if ((pw = getpwuid(getuid())) == 0)
+ return(2);
+ (void) sprintf(mailfile,
+ MAILDIR, pw->pw_name);
+ if (stat(mailfile, &stbuf) == -1)
+ return(1);
+ else
+ return(stbuf.st_size == 0);
+ }
+ break;
case 'p':
case 'q':
case 'r':
--
Eric S. Raymond (the mad mastermind of TMN-Netnews)
uunet!snark!eric | eric@snark.uu.net Phone: (215)-296-5718
Re: Serious misfeature in smail2.2 under SVr3
Author: Bill Wisner
Date: Sun, 14 May 1989 04:41
Date: Sun, 14 May 1989 04:41
16 lines
960 bytes
960 bytes
(Eric S. Raymond) > On SVr3.0 and later UNIXes installation of smail2.3 [...] Get smail2.5. This may or may not fix your problem, but do it anyway. Available from your friendly neighborhood comp.sources.unix archive. >SMAIL 3.0 DEVELOPERS: > Please incorporate this code or equivalent. The last thing we need is >for this bug to survive in your stuff... Smail3.0 is all new. Totally original. Complete rewrite from ground zero. Not a scrap of old code in it. I think. It's still a very fun toy.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads