goldberg@russell.STANFORD.EDU (Jeffrey Goldberg) (12/11/87)
I have asked several times for a solution to the problem that
slocal has a habit of dumping core when run on Sun 3s. I am happy
to report that I seem to have fixed to problem.
I have some patches that seem to fix the problem. I am sure
that these could have been written much better. I pointed out
in my first plea for help that I am not a programmer. That is
still true; so if you have some modifications to these patches,
please let me know. This is for MH6.5. There were two files
that needed modifying. One is uip/slocal.c and the other is
sbr/getcpy.c. Here is the context diffs for slocal.c. (There
is more text after the diff.)
*** slocal.c Thu Dec 10 18:20:34 1987
--- slocal.c.orig Thu Dec 10 18:20:35 1987
***************
*** 222,228 ****
case MAILSW:
if (!(cp = *argp++) || *cp == '-')
adios (NULLCP, "missing argument to %s", argp[-2]);
! if (mdlvr != NULL)
adios (NULLCP, "only one maildelivery file at a time!");
mdlvr = cp;
continue;
--- 222,228 ----
case MAILSW:
if (!(cp = *argp++) || *cp == '-')
adios (NULLCP, "missing argument to %s", argp[-2]);
! if (mdlvr)
adios (NULLCP, "only one maildelivery file at a time!");
mdlvr = cp;
continue;
***************
*** 333,348 ****
char *from,
*mdlvr;
{
! if (mdlvr == NULL)
! if (usr_delivery (fd, ".maildelivery", 0) != NOTOK)
! {
! return OK;
! }
! else
! if (usr_delivery (fd, mdlvr, 0) != NOTOK)
! {
! return OK;
! }
if (usr_delivery (fd, maildelivery, 1) != NOTOK)
return OK;
--- 333,340 ----
char *from,
*mdlvr;
{
! if (usr_delivery (fd, mdlvr ? mdlvr : ".maildelivery", 0) != NOTOK)
! return OK;
if (usr_delivery (fd, maildelivery, 1) != NOTOK)
return OK;
And here is the diff for getcpy:
*** getcpy.c Thu Dec 10 18:23:12 1987
--- getcpy.c.orig Thu Dec 10 18:23:12 1987
***************
*** 9,21 ****
{
register char *cp;
- if (str == NULLCP) {
- if ((cp = malloc ((unsigned) (1))) == NULL)
- adios (NULLCP, "unable to allocate string storage");
- *cp = '\0'; /* A NULL pointer is not a null string */
- return cp;
- }
-
if ((cp = malloc ((unsigned) (strlen (str) + 1))) == NULL)
adios (NULLCP, "unable to allocate string storage");
--- 9,14 ----
--
Jeff Goldberg Internet: goldberg@russell.stanford.edu