Branch: Tag:

2003-03-03

2003-03-03 18:07:47 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Roxen should now be able to dump core on Linux even when running with different euid (requires System.dumpable()).

Rev: server/base_server/roxen.pike:1.823

6:   // Per Hedbor, Henrik Grubbström, Pontus Hagland, David Hedbor and others.   // ABS and suicide systems contributed freely by Francesco Chemolli    - constant cvs_version="$Id: roxen.pike,v 1.822 2003/02/05 13:33:58 jonasw Exp $"; + constant cvs_version="$Id: roxen.pike,v 1.823 2003/03/03 18:07:47 grubba Exp $";      //! @appears roxen   //!
63:   # define THREAD_WERR(X)   #endif    + // Needed to get core dumps of seteuid()'ed processes on Linux. + #if constant(System.dumpable) + #define enable_coredumps(X) System.dumpable(X) + #else + #define enable_coredumps(X) + #endif +    #define DDUMP(X) sol( combine_path( __FILE__, "../../" + X ), dump )   static function sol = master()->set_on_load;   
287: Inside #if defined(HAVE_EFFECTIVE_USER)
   }    if(getgid()!=gid) setgid(gid||getgid());    seteuid(new_uid = uid); +  enable_coredumps(1);   #endif /* HAVE_EFFECTIVE_USER */    }   
360: Inside #if defined(HAVE_EFFECTIVE_USER)
   }    setegid(saved_gid);    seteuid(saved_uid); +  enable_coredumps(1);   #endif /* HAVE_EFFECTIVE_USER */    }   #else /* efun(seteuid) */
1707: Inside #if constant(SSL.sslfile)
   dsa->use_random(r);    ctx->dsa = dsa;    /* Use default DH parameters */ + #if constant(SSL.Cipher) +  ctx->dh_params = SSL.Cipher.DHParameters(); + #else    ctx->dh_params = SSL.cipher.dh_parameters(); -  + #endif       ctx->dhe_dss_mode();   
3899:   #endif    }    +  enable_coredumps(1); +    #ifdef THREADS    // Paranoia.    mutex_key = 0;