View | Details | Raw Unified | Return to bug 62061
Collapse All | Expand All

(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_conf.c (-6 / +46 lines)
Lines 169-177 void *merge_fcgid_server_config(apr_pool Link Here
169
    return merged;
169
    return merged;
170
}
170
}
171
171
172
void *create_fcgid_dir_config(apr_pool_t * p, char *dummy)
172
void *create_fcgid_dir_config(apr_pool_t * p, char *context)
173
{
173
{
174
    static int dir_id = 0;
175
174
    fcgid_dir_conf *config = apr_pcalloc(p, sizeof(fcgid_dir_conf));
176
    fcgid_dir_conf *config = apr_pcalloc(p, sizeof(fcgid_dir_conf));
177
    ++dir_id;
178
179
    config->dir_id = dir_id;
180
    config->context = context;
175
181
176
    config->wrapper_info_hash = apr_hash_make(p);
182
    config->wrapper_info_hash = apr_hash_make(p);
177
    /* config->authenticator_info = NULL; */
183
    /* config->authenticator_info = NULL; */
Lines 180-185 void *create_fcgid_dir_config(apr_pool_t Link Here
180
    config->authorizer_authoritative = 1;
186
    config->authorizer_authoritative = 1;
181
    /* config->access_info = NULL; */
187
    /* config->access_info = NULL; */
182
    config->access_authoritative = 1;
188
    config->access_authoritative = 1;
189
    /* config->default_init_env = NULL;*/
183
    return (void *) config;
190
    return (void *) config;
184
}
191
}
185
192
Lines 190-195 void *merge_fcgid_dir_config(apr_pool_t Link Here
190
    fcgid_dir_conf *merged =
197
    fcgid_dir_conf *merged =
191
      (fcgid_dir_conf *) apr_pmemdup(p, local, sizeof(fcgid_dir_conf));
198
      (fcgid_dir_conf *) apr_pmemdup(p, local, sizeof(fcgid_dir_conf));
192
199
200
    /* Merge environment variables */
201
    if (base->default_init_env == NULL) {
202
        /* merged already set to local */
203
    }
204
    else if (local->default_init_env == NULL) {
205
        merged->default_init_env = base->default_init_env;
206
    }
207
    else {
208
        merged->default_init_env =
209
          apr_table_copy(p, base->default_init_env);
210
        apr_table_overlap(merged->default_init_env,
211
                          local->default_init_env,
212
                          APR_OVERLAP_TABLES_SET);
213
    }
214
193
    merged->wrapper_info_hash =
215
    merged->wrapper_info_hash =
194
      apr_hash_overlay(p, local->wrapper_info_hash,
216
      apr_hash_overlay(p, local->wrapper_info_hash,
195
                       base->wrapper_info_hash);
217
                       base->wrapper_info_hash);
Lines 570-584 static void add_envvar_to_table(apr_tabl Link Here
570
    apr_table_set(t, name, value ? value : "");
592
    apr_table_set(t, name, value ? value : "");
571
}
593
}
572
594
573
const char *add_default_env_vars(cmd_parms * cmd, void *dummy,
595
const char *add_default_env_vars(cmd_parms * cmd, void *dir_config,
574
                                 const char *name, const char *value)
596
                                 const char *name, const char *value)
575
{
597
{
598
    if (cmd->path != NULL) { /* dir context (Directory / Files / Location) */
599
        fcgid_dir_conf *dconfig = ap_get_module_config(cmd->context, &fcgid_module);
600
601
        if (dconfig->default_init_env == NULL)
602
            dconfig->default_init_env = apr_table_make(cmd->pool, 20);
603
    
604
        add_envvar_to_table(dconfig->default_init_env, cmd->pool, name, value);
605
606
        return NULL;
607
    }
608
576
    fcgid_server_conf *config =
609
    fcgid_server_conf *config =
577
        ap_get_module_config(cmd->server->module_config, &fcgid_module);
610
        ap_get_module_config(cmd->server->module_config, &fcgid_module);
578
    if (config->default_init_env == NULL)
611
    if (config->default_init_env == NULL)
579
        config->default_init_env = apr_table_make(cmd->pool, 20);
612
        config->default_init_env = apr_table_make(cmd->pool, 20);
580
613
    
581
    add_envvar_to_table(config->default_init_env, cmd->pool, name, value);
614
    add_envvar_to_table(config->default_init_env, cmd->pool, name, value);
615
582
    return NULL;
616
    return NULL;
583
}
617
}
584
618
Lines 935-947 fcgid_cmd_conf *get_wrapper_info(const c Link Here
935
    return NULL;
969
    return NULL;
936
}
970
}
937
971
938
static int set_cmd_envvars(fcgid_cmd_env *cmdenv, apr_table_t *envvars)
972
static int set_cmd_envvars(fcgid_cmd_env *cmdenv, apr_table_t *envvars, apr_table_t *denvvars)
939
{
973
{
940
    const apr_array_header_t *envvars_arr;
974
    const apr_array_header_t *envvars_arr;
941
    const apr_table_entry_t *envvars_entry;
975
    const apr_table_entry_t *envvars_entry;
942
    int i;
976
    int i;
943
    int overflow = 0;
977
    int overflow = 0;
944
978
979
    if (denvvars) { /* directory environment overwrites vhost environment */
980
	    envvars = denvvars;
981
    }
982
945
    if (envvars) {
983
    if (envvars) {
946
        envvars_arr = apr_table_elts(envvars);
984
        envvars_arr = apr_table_elts(envvars);
947
        envvars_entry = (apr_table_entry_t *) envvars_arr->elts;
985
        envvars_entry = (apr_table_entry_t *) envvars_arr->elts;
Lines 1106-1112 const char *set_cmd_options(cmd_parms *c Link Here
1106
                            option);
1144
                            option);
1107
    }
1145
    }
1108
1146
1109
    if ((overflow = set_cmd_envvars(cmdopts->cmdenv, envvars)) != 0) {
1147
    if ((overflow = set_cmd_envvars(cmdopts->cmdenv, envvars, NULL)) != 0) {
1110
        return apr_psprintf(cmd->pool, "mod_fcgid: environment variable table "
1148
        return apr_psprintf(cmd->pool, "mod_fcgid: environment variable table "
1111
                            "overflow; increase INITENV_CNT in fcgid_pm.h from"
1149
                            "overflow; increase INITENV_CNT in fcgid_pm.h from"
1112
                            " %d to at least %d",
1150
                            " %d to at least %d",
Lines 1122-1127 void get_cmd_options(request_rec *r, con Link Here
1122
                     fcgid_cmd_options *cmdopts,
1160
                     fcgid_cmd_options *cmdopts,
1123
                     fcgid_cmd_env *cmdenv)
1161
                     fcgid_cmd_env *cmdenv)
1124
{
1162
{
1163
    fcgid_dir_conf *dconf = ap_get_module_config(r->per_dir_config, &fcgid_module);
1164
1125
    fcgid_server_conf *sconf =
1165
    fcgid_server_conf *sconf =
1126
        ap_get_module_config(r->server->module_config, &fcgid_module);
1166
        ap_get_module_config(r->server->module_config, &fcgid_module);
1127
    fcgid_cmd_options *cmd_specific = apr_hash_get(sconf->cmdopts_hash,
1167
    fcgid_cmd_options *cmd_specific = apr_hash_get(sconf->cmdopts_hash,
Lines 1149-1155 void get_cmd_options(request_rec *r, con Link Here
1149
    cmdopts->min_class_process_count = sconf->min_class_process_count;
1189
    cmdopts->min_class_process_count = sconf->min_class_process_count;
1150
    cmdopts->proc_lifetime = sconf->proc_lifetime;
1190
    cmdopts->proc_lifetime = sconf->proc_lifetime;
1151
1191
1152
    if ((overflow = set_cmd_envvars(cmdenv, sconf->default_init_env)) != 0) {
1192
    if ((overflow = set_cmd_envvars(cmdenv, sconf->default_init_env, dconf->default_init_env)) != 0) {
1153
        ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
1193
        ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
1154
                      "mod_fcgid: %d environment variables dropped; increase "
1194
                      "mod_fcgid: %d environment variables dropped; increase "
1155
                      "INITENV_CNT in fcgid_pm.h from %d to at least %d",
1195
                      "INITENV_CNT in fcgid_pm.h from %d to at least %d",
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/mod_fcgid.c (-4 / +9 lines)
Lines 306-311 static int fcgidsort(fcgid_procnode **e1 Link Here
306
        return cmp;
306
        return cmp;
307
    if ((*e1)->vhost_id != (*e2)->vhost_id)
307
    if ((*e1)->vhost_id != (*e2)->vhost_id)
308
        return (*e1)->vhost_id > (*e2)->vhost_id ? 1 : -1;
308
        return (*e1)->vhost_id > (*e2)->vhost_id ? 1 : -1;
309
    if ((*e1)->dir_id != (*e2)->dir_id)
310
        return (*e1)->dir_id > (*e2)->dir_id ? 1 : -1;
309
    if ((*e1)->diewhy != (*e2)->diewhy)
311
    if ((*e1)->diewhy != (*e2)->diewhy)
310
        return (*e1)->diewhy > (*e2)->diewhy ? 1 : -1;
312
        return (*e1)->diewhy > (*e2)->diewhy ? 1 : -1;
311
    if ((*e1)->node_type != (*e2)->node_type)
313
    if ((*e1)->node_type != (*e2)->node_type)
Lines 353-358 static int fcgid_status_hook(request_rec Link Here
353
    const char *last_cmdline = "";
355
    const char *last_cmdline = "";
354
    apr_time_t now;
356
    apr_time_t now;
355
    int last_vhost_id = -1;
357
    int last_vhost_id = -1;
358
    int last_dir_id = -1;
356
    const char *basename, *tmpbasename;
359
    const char *basename, *tmpbasename;
357
    fcgid_procnode *proc_table = proctable_get_table_array();
360
    fcgid_procnode *proc_table = proctable_get_table_array();
358
    fcgid_procnode *error_list_header = proctable_get_error_list();
361
    fcgid_procnode *error_list_header = proctable_get_error_list();
Lines 425-431 static int fcgid_status_hook(request_rec Link Here
425
        if (current_node->inode != last_inode || current_node->deviceid != last_deviceid
428
        if (current_node->inode != last_inode || current_node->deviceid != last_deviceid
426
            || current_node->gid != last_gid || current_node->uid != last_uid
429
            || current_node->gid != last_gid || current_node->uid != last_uid
427
            || strcmp(current_node->cmdline, last_cmdline)
430
            || strcmp(current_node->cmdline, last_cmdline)
428
            || current_node->vhost_id != last_vhost_id) {
431
            || current_node->vhost_id != last_vhost_id
432
	    || current_node->dir_id != last_dir_id) {
429
            if (index != 0)
433
            if (index != 0)
430
                 ap_rputs("</table>\n\n", r);
434
                 ap_rputs("</table>\n\n", r);
431
435
Lines 438-445 static int fcgid_status_hook(request_rec Link Here
438
                basename++;
442
                basename++;
439
	    else
443
	    else
440
                basename = tmpbasename;
444
                basename = tmpbasename;
441
            ap_rprintf(r, "<hr />\n<b>Process: %s</b>&nbsp;&nbsp;(%s)<br />\n",
445
            ap_rprintf(r, "<hr />\n<b>Process: %s</b>&nbsp;&nbsp;(%s at %s)<br />\n",
442
                       basename, current_node->cmdline);
446
                       basename, current_node->cmdline, current_node->context);
443
447
444
            /* Create a new table for this process info */
448
            /* Create a new table for this process info */
445
            ap_rputs("\n\n<table border=\"0\"><tr>"
449
            ap_rputs("\n\n<table border=\"0\"><tr>"
Lines 453-458 static int fcgid_status_hook(request_rec Link Here
453
            last_uid = current_node->uid;
457
            last_uid = current_node->uid;
454
            last_cmdline = current_node->cmdline;
458
            last_cmdline = current_node->cmdline;
455
            last_vhost_id = current_node->vhost_id;
459
            last_vhost_id = current_node->vhost_id;
460
            last_dir_id = current_node->dir_id;
456
        }
461
        }
457
462
458
        ap_rprintf(r, "<tr><td>%" APR_PID_T_FMT "</td><td>%" APR_TIME_T_FMT "</td><td>%" APR_TIME_T_FMT "</td><td>%d</td><td>%s</td></tr>",
463
        ap_rprintf(r, "<tr><td>%" APR_PID_T_FMT "</td><td>%" APR_TIME_T_FMT "</td><td>%" APR_TIME_T_FMT "</td><td>%d</td><td>%s</td></tr>",
Lines 751-757 static const command_rec fcgid_cmds[] = Link Here
751
                  "a fastcgi application will be killed after handling a request for BusyTimeout"),
756
                  "a fastcgi application will be killed after handling a request for BusyTimeout"),
752
    AP_INIT_RAW_ARGS("FcgidCmdOptions", set_cmd_options, NULL, RSRC_CONF,
757
    AP_INIT_RAW_ARGS("FcgidCmdOptions", set_cmd_options, NULL, RSRC_CONF,
753
                     "set processing options for a FastCGI command"),
758
                     "set processing options for a FastCGI command"),
754
    AP_INIT_TAKE12("FcgidInitialEnv", add_default_env_vars, NULL, RSRC_CONF,
759
    AP_INIT_TAKE12("FcgidInitialEnv", add_default_env_vars, NULL, ACCESS_CONF | RSRC_CONF,
755
                   "an environment variable name and optional value to pass to FastCGI."),
760
                   "an environment variable name and optional value to pass to FastCGI."),
756
    AP_INIT_TAKE1("FcgidMaxProcessesPerClass",
761
    AP_INIT_TAKE1("FcgidMaxProcessesPerClass",
757
                  set_max_class_process,
762
                  set_max_class_process,
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_conf.h (+5 lines)
Lines 130-135 typedef struct { Link Here
130
    fcgid_cmd_conf *access_info;
130
    fcgid_cmd_conf *access_info;
131
    int access_authoritative;
131
    int access_authoritative;
132
    int access_authoritative_set;
132
    int access_authoritative_set;
133
    
134
    /* context info */
135
    apr_table_t *default_init_env;
136
    int dir_id;
137
    const char *context;
133
} fcgid_dir_conf;
138
} fcgid_dir_conf;
134
139
135
/* processing options which are sent to the PM with a spawn request
140
/* processing options which are sent to the PM with a spawn request
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_bridge.c (+2 lines)
Lines 60-65 static fcgid_procnode *apply_free_procno Link Here
60
            && current_node->deviceid == deviceid
60
            && current_node->deviceid == deviceid
61
            && !strcmp(current_node->cmdline, cmdline)
61
            && !strcmp(current_node->cmdline, cmdline)
62
            && current_node->vhost_id == command->vhost_id
62
            && current_node->vhost_id == command->vhost_id
63
	    && current_node->dir_id == command->dir_id
63
            && current_node->uid == uid && current_node->gid == gid) {
64
            && current_node->uid == uid && current_node->gid == gid) {
64
            /* Unlink from idle list */
65
            /* Unlink from idle list */
65
            previous_node->next_index = current_node->next_index;
66
            previous_node->next_index = current_node->next_index;
Lines 140-145 static int count_busy_processes(request_ Link Here
140
            && current_node->deviceid == command->deviceid
141
            && current_node->deviceid == command->deviceid
141
            && !strcmp(current_node->cmdline, command->cmdline)
142
            && !strcmp(current_node->cmdline, command->cmdline)
142
            && current_node->vhost_id == command->vhost_id
143
            && current_node->vhost_id == command->vhost_id
144
            && current_node->dir_id == command->dir_id
143
            && current_node->uid == command->uid
145
            && current_node->uid == command->uid
144
            && current_node->gid == command->gid) {
146
            && current_node->gid == command->gid) {
145
            result++;
147
            result++;
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_pm.h (+2 lines)
Lines 29-34 typedef struct { Link Here
29
     * module may have copied it for per-request customization
29
     * module may have copied it for per-request customization
30
     */
30
     */
31
    int vhost_id;
31
    int vhost_id;
32
    int dir_id;
33
    const char* context;
32
    char server_hostname[32];   /* for logging only; ok to truncate */
34
    char server_hostname[32];   /* for logging only; ok to truncate */
33
    uid_t uid;                  /* For suEXEC */
35
    uid_t uid;                  /* For suEXEC */
34
    gid_t gid;                  /* For suEXEC */
36
    gid_t gid;                  /* For suEXEC */
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_pm_main.c (+2 lines)
Lines 563-568 fastcgi_spawn(fcgid_command * command, s Link Here
563
    apr_cpystrn(procnode->cmdline, command->cmdline, sizeof procnode->cmdline);
563
    apr_cpystrn(procnode->cmdline, command->cmdline, sizeof procnode->cmdline);
564
564
565
    procnode->vhost_id = command->vhost_id;
565
    procnode->vhost_id = command->vhost_id;
566
    procnode->dir_id = command->dir_id;
567
    procnode->context = command->context;
566
    procnode->uid = command->uid;
568
    procnode->uid = command->uid;
567
    procnode->gid = command->gid;
569
    procnode->gid = command->gid;
568
    procnode->start_time = procnode->last_active_time = apr_time_now();
570
    procnode->start_time = procnode->last_active_time = apr_time_now();
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_pm_unix.c (+4 lines)
Lines 426-431 void procmgr_init_spawn_cmd(fcgid_comman Link Here
426
    ap_unix_identity_t *ugid;
426
    ap_unix_identity_t *ugid;
427
    fcgid_server_conf *sconf =
427
    fcgid_server_conf *sconf =
428
        ap_get_module_config(r->server->module_config, &fcgid_module);
428
        ap_get_module_config(r->server->module_config, &fcgid_module);
429
    fcgid_dir_conf *dconf =
430
        ap_get_module_config(r->per_dir_config, &fcgid_module);
429
431
430
    /* suEXEC check */
432
    /* suEXEC check */
431
    if ((ugid = ap_run_get_suexec_identity(r))) {
433
    if ((ugid = ap_run_get_suexec_identity(r))) {
Lines 447-452 void procmgr_init_spawn_cmd(fcgid_comman Link Here
447
    command->deviceid = cmd_conf->deviceid;
449
    command->deviceid = cmd_conf->deviceid;
448
    command->inode = cmd_conf->inode;
450
    command->inode = cmd_conf->inode;
449
    command->vhost_id = sconf->vhost_id;
451
    command->vhost_id = sconf->vhost_id;
452
    command->dir_id = dconf->dir_id;
453
    command->context = dconf->context;
450
    if (r->server->server_hostname) {
454
    if (r->server->server_hostname) {
451
        apr_cpystrn(command->server_hostname, r->server->server_hostname,
455
        apr_cpystrn(command->server_hostname, r->server->server_hostname,
452
                    sizeof command->server_hostname);
456
                    sizeof command->server_hostname);
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_pm_win.c (+4 lines)
Lines 135-140 void procmgr_init_spawn_cmd(fcgid_comman Link Here
135
{
135
{
136
    fcgid_server_conf *sconf =
136
    fcgid_server_conf *sconf =
137
        ap_get_module_config(r->server->module_config, &fcgid_module);
137
        ap_get_module_config(r->server->module_config, &fcgid_module);
138
    fcgid_dir_conf *dconf =
139
        ap_get_module_config(r->per_dir_config, &fcgid_module);
138
140
139
    /* no truncation should ever occur */
141
    /* no truncation should ever occur */
140
    AP_DEBUG_ASSERT(sizeof command->cgipath > strlen(cmd_conf->cgipath));
142
    AP_DEBUG_ASSERT(sizeof command->cgipath > strlen(cmd_conf->cgipath));
Lines 148-153 void procmgr_init_spawn_cmd(fcgid_comman Link Here
148
    command->gid = (gid_t) - 1;
150
    command->gid = (gid_t) - 1;
149
    command->userdir = 0;
151
    command->userdir = 0;
150
    command->vhost_id = sconf->vhost_id;
152
    command->vhost_id = sconf->vhost_id;
153
    command->dir_id = dconf->dir_id;
154
    command->context = dconf->context;
151
    if (r->server->server_hostname) {
155
    if (r->server->server_hostname) {
152
        apr_cpystrn(command->server_hostname, r->server->server_hostname,
156
        apr_cpystrn(command->server_hostname, r->server->server_hostname,
153
                    sizeof command->server_hostname);
157
                    sizeof command->server_hostname);
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_proctbl.h (+2 lines)
Lines 52-57 typedef struct { Link Here
52
    int vhost_id;               /* the vhost to which this process belongs (the server_rec
52
    int vhost_id;               /* the vhost to which this process belongs (the server_rec
53
                                 * addr fails with some mass-vhost mods which allocate
53
                                 * addr fails with some mass-vhost mods which allocate
54
                                 * them per-request) */
54
                                 * them per-request) */
55
    int dir_id;                 /* process class connected to dir */
56
    const char* context;        /* dir/location of process class */
55
    apr_time_t start_time;      /* the time of this process create */
57
    apr_time_t start_time;      /* the time of this process create */
56
    apr_time_t last_active_time;    /* the time this process last active */
58
    apr_time_t last_active_time;    /* the time this process last active */
57
    int requests_handled;       /* number of requests process has handled */
59
    int requests_handled;       /* number of requests process has handled */
(-)libapache2-mod-fcgid-2.3.9/modules/fcgid/fcgid_spawn_ctl.c (+5 lines)
Lines 30-35 struct fcgid_stat_node { Link Here
30
    gid_t gid;
30
    gid_t gid;
31
    const char *cmdline;
31
    const char *cmdline;
32
    int vhost_id;
32
    int vhost_id;
33
    int dir_id;
33
    int score;
34
    int score;
34
    int process_counter;
35
    int process_counter;
35
    int max_class_process_count;
36
    int max_class_process_count;
Lines 62-67 register_life_death(server_rec * main_se Link Here
62
            && current_node->deviceid == procnode->deviceid
63
            && current_node->deviceid == procnode->deviceid
63
            && !strcmp(current_node->cmdline, procnode->cmdline)
64
            && !strcmp(current_node->cmdline, procnode->cmdline)
64
            && current_node->vhost_id == procnode->vhost_id
65
            && current_node->vhost_id == procnode->vhost_id
66
            && current_node->dir_id == procnode->dir_id
65
            && current_node->uid == procnode->uid
67
            && current_node->uid == procnode->uid
66
            && current_node->gid == procnode->gid)
68
            && current_node->gid == procnode->gid)
67
            break;
69
            break;
Lines 80-85 register_life_death(server_rec * main_se Link Here
80
        current_node->inode = procnode->inode;
82
        current_node->inode = procnode->inode;
81
        current_node->cmdline = apr_pstrdup(g_stat_pool, procnode->cmdline);
83
        current_node->cmdline = apr_pstrdup(g_stat_pool, procnode->cmdline);
82
        current_node->vhost_id = procnode->vhost_id;
84
        current_node->vhost_id = procnode->vhost_id;
85
        current_node->dir_id = procnode->dir_id;
83
        current_node->uid = procnode->uid;
86
        current_node->uid = procnode->uid;
84
        current_node->gid = procnode->gid;
87
        current_node->gid = procnode->gid;
85
        current_node->last_stat_time = now;
88
        current_node->last_stat_time = now;
Lines 179-184 int is_spawn_allowed(server_rec * main_s Link Here
179
            && current_node->deviceid == command->deviceid
182
            && current_node->deviceid == command->deviceid
180
            && !strcmp(current_node->cmdline, command->cmdline)
183
            && !strcmp(current_node->cmdline, command->cmdline)
181
            && current_node->vhost_id == command->vhost_id
184
            && current_node->vhost_id == command->vhost_id
185
            && current_node->dir_id == command->dir_id
182
            && current_node->uid == command->uid
186
            && current_node->uid == command->uid
183
            && current_node->gid == command->gid)
187
            && current_node->gid == command->gid)
184
            break;
188
            break;
Lines 238-243 int is_kill_allowed(server_rec * main_se Link Here
238
            && current_node->deviceid == procnode->deviceid
242
            && current_node->deviceid == procnode->deviceid
239
            && !strcmp(current_node->cmdline, procnode->cmdline)
243
            && !strcmp(current_node->cmdline, procnode->cmdline)
240
            && current_node->vhost_id == procnode->vhost_id
244
            && current_node->vhost_id == procnode->vhost_id
245
            && current_node->dir_id == procnode->dir_id
241
            && current_node->uid == procnode->uid
246
            && current_node->uid == procnode->uid
242
            && current_node->gid == procnode->gid)
247
            && current_node->gid == procnode->gid)
243
            break;
248
            break;

Return to bug 62061