Re: Exim 0.55 fails hpux9.05

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: Philip Hazel
Fecha:  
A: Neal Becker
Cc: exim-users
Asunto: Re: Exim 0.55 fails hpux9.05
On Wed, 7 Aug 1996, Neal Becker wrote:

> gcc -c -g -O3 -I. deliver.c
> deliver.c: In function `deliver_local':
> deliver.c:573: `RLIMIT_CORE' undeclared (first use this function)
> deliver.c:573: (Each undeclared identifier is reported only once
> deliver.c:573: for each function it appears in.)


Oops. Philip goofs again. Apologies. I spent too many years working on
an operating system that existed in only one variation (MVS); Unix
continually catches me out with its infinite variety. It appears that
HP-UX does not have the RLIMIT_CORE option for setrlimit(). I've just
tried to check on the other OS supported by Exim, and those I can see at
the moment all seem to have it. (I can't get at a Linux or a BSDI system
just at present.) The following patch just cuts out the call on systems
that don't have it, and also fixes a misunderstanding on my part about
setrlimit in general - though that won't actually matter on other OS.

[Just had a report of other problems with 0.55, so there may even be
0.56 before I go away - something I was trying to avoid...]

*** exim-0.55/src/deliver.c Wed Aug  7 14:48:41 1996
--- deliver.c    Thu Aug  8 09:46:19 1996
***************
*** 562,567 ****
--- 562,578 ----


  if ((pid = fork()) == 0)
    {
+   /* Prevent core dumps, as we don't want them in users' home directories.
+   HP-UX doesn't have RLIMIT_CORE; I don't know how to do this in that
+   system. */
+ 
+   #ifdef RLIMIT_CORE
+   struct rlimit rl;
+   rl.rlim_cur = 0;
+   rl.rlim_max = 0;
+   setrlimit(RLIMIT_CORE, &rl);
+   #endif
+ 
    /* Ignore SIGINT and SIGTERM during delivery (SIGHUP is ignored throughout
    exim, except when being a daemon). */


***************
*** 568,577 ****
    signal(SIGINT, SIG_IGN);
    signal(SIGTERM, SIG_IGN);


-   /* Prevent core dumps, as we don't want them in users' home directories. */
- 
-   setrlimit(RLIMIT_CORE, 0);
- 
    /* Close the unwanted half of the pipe, and set the required gid/uid, first
    regaining root privilege if necessary. Note that mac_sete{g,u}id expands
    to a failure on systems without the sete{g,u}id functions, but on such
--- 579,584 ----




--
Philip Hazel                   University Computing Service,
ph10@???             New Museums Site, Cambridge CB2 3QG,
P.Hazel@???          England.  Phone: +44 1223 334714