brian 97/01/23 23:42:47
Modified: src http_core.c Log: Reviewed by: Randy Terbush, Chuck Murcko Submitted by: Ed Korthof This is a bug fix; as I mentioned, the RLimit* set of directives silently ignore any second argument. The TAKE12 method passes a second char * argument (which may be NULL), which was simply being ignored (I suppose compilers haven't complained because the functioned called is determined at runtime; and the function was finding all the arguments it expected...). Revision Changes Path 1.60 +10 -10 apache/src/http_core.c Index: http_core.c =================================================================== RCS file: /export/home/cvs/apache/src/http_core.c,v retrieving revision 1.59 retrieving revision 1.60 diff -C3 -r1.59 -r1.60 *** http_core.c 1997/01/24 01:49:15 1.59 --- http_core.c 1997/01/24 07:42:45 1.60 *************** *** 976,982 **** #if defined(RLIMIT_CPU) || defined(RLIMIT_DATA) || defined(RLIMIT_VMEM) || defined(RLIMIT_NPROC) static void set_rlimit(cmd_parms *cmd, struct rlimit **plimit, const char *arg, ! int type) { char *str; struct rlimit *limit; --- 976,982 ---- #if defined(RLIMIT_CPU) || defined(RLIMIT_DATA) || defined(RLIMIT_VMEM) || defined(RLIMIT_NPROC) static void set_rlimit(cmd_parms *cmd, struct rlimit **plimit, const char *arg, ! const char * arg2, int type) { char *str; struct rlimit *limit; *************** *** 1003,1009 **** return; } ! if ((str = getword_conf(cmd->pool, &arg))) max = atol(str); /* if we aren't running as root, cannot increase max */ --- 1003,1009 ---- return; } ! if ((str = getword_conf(cmd->pool, &arg2))) max = atol(str); /* if we aren't running as root, cannot increase max */ *************** *** 1024,1030 **** #if !defined (RLIMIT_CPU) || !(defined (RLIMIT_DATA) || defined (RLIMIT_VMEM)) || !defined (RLIMIT_NPROC) static const char *no_set_limit (cmd_parms *cmd, core_dir_config *conf, ! char *arg) { log_printf(cmd->server, "%s not supported on this platform", cmd->cmd->name); --- 1024,1030 ---- #if !defined (RLIMIT_CPU) || !(defined (RLIMIT_DATA) || defined (RLIMIT_VMEM)) || !defined (RLIMIT_NPROC) static const char *no_set_limit (cmd_parms *cmd, core_dir_config *conf, ! char *arg, char *arg2) { log_printf(cmd->server, "%s not supported on this platform", cmd->cmd->name); *************** *** 1033,1061 **** #endif #ifdef RLIMIT_CPU ! const char *set_limit_cpu (cmd_parms *cmd, core_dir_config *conf, char *arg) { ! set_rlimit(cmd,&conf->limit_cpu,arg,RLIMIT_CPU); return NULL; } #endif #if defined (RLIMIT_DATA) || defined (RLIMIT_VMEM) ! const char *set_limit_mem (cmd_parms *cmd, core_dir_config *conf, char *arg) { #ifdef RLIMIT_DATA ! set_rlimit(cmd,&conf->limit_mem,arg,RLIMIT_DATA); #else ! set_rlimit(cmd,&conf->limit_mem,arg,RLIMIT_VMEM); #endif return NULL; } #endif #ifdef RLIMIT_NPROC ! const char *set_limit_nproc (cmd_parms *cmd, core_dir_config *conf, char *arg) { ! set_rlimit(cmd,&conf->limit_nproc,arg,RLIMIT_NPROC); return NULL; } #endif --- 1033,1061 ---- #endif #ifdef RLIMIT_CPU ! const char *set_limit_cpu (cmd_parms *cmd, core_dir_config *conf, char *arg, char *arg2) { ! set_rlimit(cmd,&conf->limit_cpu,arg,arg2,RLIMIT_CPU); return NULL; } #endif #if defined (RLIMIT_DATA) || defined (RLIMIT_VMEM) ! const char *set_limit_mem (cmd_parms *cmd, core_dir_config *conf, char *arg, char * arg2) { #ifdef RLIMIT_DATA ! set_rlimit(cmd,&conf->limit_mem,arg,arg2,RLIMIT_DATA); #else ! set_rlimit(cmd,&conf->limit_mem,arg,arg2,RLIMIT_VMEM); #endif return NULL; } #endif #ifdef RLIMIT_NPROC ! const char *set_limit_nproc (cmd_parms *cmd, core_dir_config *conf, char *arg, char * arg2) { ! set_rlimit(cmd,&conf->limit_nproc,arg,arg2,RLIMIT_NPROC); return NULL; } #endif