(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/master/login-process.c) |
| |
| 535 | | | static void login_process_init_env(struct login_group *group, pid_t pid) |
| 536 | | | { |
| 537 | | | struct settings *set = group->set; |
| 538 | | | const struct auth_settings *auth; |
| 539 | | | bool require_cert; |
| 540 | | | |
| 541 | [+] | | child_process_init_env(); |
 |
| 542 | | | |
| 543 | | | |
| 544 | | | |
| 545 | | | |
| 546 | | | |
| 547 | | | restrict_access_set_env(NULL, set->login_uid, |
| 548 | | | set->server->login_gid, (gid_t)-1, |
| 549 | | | set->login_chroot ? set->login_dir : NULL, |
Event 16:
set->login_chroot evaluates to true.
hide
|
|
| 550 | | | 0, 0, NULL); |
| 551 | | | |
| 552 | | | env_put("DOVECOT_MASTER=1"); |
| 553 | | | |
| 554 | | | if (strcmp(set->ssl, "no") != 0) { |
Event 17:
Skipping " if". strcmp(set->ssl, "no") != 0 evaluates to false.
hide
|
|
| 555 | | | const char *ssl_key_password; |
| 556 | | | |
| 557 | | | ssl_key_password = *set->ssl_key_password != '\0' ? |
| 558 | | | set->ssl_key_password : ssl_manual_key_password; |
| 559 | | | |
| 560 | | | if (*set->ssl_ca_file != '\0') { |
| 561 | | | env_put(t_strconcat("SSL_CA_FILE=", |
| 562 | | | set->ssl_ca_file, NULL)); |
| 563 | | | } |
| 564 | | | if (strcmp(set->ssl, "required") == 0) |
| 565 | | | env_put("SSL_REQUIRED=1"); |
| 566 | | | env_put(t_strconcat("SSL_CERT_FILE=", |
| 567 | | | set->ssl_cert_file, NULL)); |
| 568 | | | env_put(t_strconcat("SSL_KEY_FILE=", |
| 569 | | | set->ssl_key_file, NULL)); |
| 570 | | | env_put(t_strconcat("SSL_KEY_PASSWORD=", |
| 571 | | | ssl_key_password, NULL)); |
| 572 | | | env_put("SSL_PARAM_FILE="SSL_PARAMETERS_FILENAME); |
| 573 | | | if (*set->ssl_cipher_list != '\0') { |
| 574 | | | env_put(t_strconcat("SSL_CIPHER_LIST=", |
| 575 | | | set->ssl_cipher_list, NULL)); |
| 576 | | | } |
| 577 | | | env_put(t_strconcat("SSL_CERT_USERNAME_FIELD=", |
| 578 | | | set->ssl_cert_username_field, NULL)); |
| 579 | | | if (set->ssl_verify_client_cert) |
| 580 | | | env_put("SSL_VERIFY_CLIENT_CERT=1"); |
| 581 | | | } |
| 582 | | | |
| 583 | | | if (set->disable_plaintext_auth) |
Event 18:
Skipping " if". set->disable_plaintext_auth evaluates to false.
hide
|
|
| 584 | | | env_put("DISABLE_PLAINTEXT_AUTH=1"); |
| 585 | | | if (set->verbose_proctitle) |
Event 19:
Skipping " if". set->verbose_proctitle evaluates to false.
hide
|
|
| 586 | | | env_put("VERBOSE_PROCTITLE=1"); |
| 587 | | | if (set->verbose_ssl) |
Event 20:
Skipping " if". set->verbose_ssl evaluates to false.
hide
|
|
| 588 | | | env_put("VERBOSE_SSL=1"); |
| 589 | | | if (set->server->auths->verbose) |
Event 21:
Taking true branch. set->server->auths->verbose evaluates to true.
hide
|
|
| 590 | | | env_put("VERBOSE_AUTH=1"); |
| 591 | | | if (set->server->auths->debug) |
Event 22:
Skipping " if". set->server->auths->debug evaluates to false.
hide
|
|
| 592 | | | env_put("AUTH_DEBUG=1"); |
| 593 | | | require_cert = TRUE; |
Event 23:
!0 evaluates to true.
hide
|
|
| 594 | | | for (auth = set->server->auths; auth != NULL; auth = auth->next) { |
Event 24:
Entering loop body. auth != (void *)0 evaluates to true.
hide
Event 26:
Continuing from loop body. Leaving loop. auth != (void *)0 evaluates to false.
hide
|
|
| 595 | | | if (!auth->ssl_require_client_cert) |
Event 25:
Skipping " if". auth->ssl_require_client_cert evaluates to true.
hide
|
|
| 596 | | | require_cert = FALSE; |
| 597 | | | } |
| 598 | | | if (require_cert) |
Event 27:
Taking true branch. require_cert evaluates to true.
hide
|
|
| 599 | | | env_put("SSL_REQUIRE_CLIENT_CERT=1"); |
| 600 | | | |
| 601 | | | if (set->login_process_per_connection) { |
Event 28:
Taking false branch. set->login_process_per_connection evaluates to false.
hide
|
|
| 602 | | | env_put("PROCESS_PER_CONNECTION=1"); |
| 603 | | | env_put("MAX_CONNECTIONS=1"); |
| 604 | | | } else { |
| 605 | | | env_put(t_strdup_printf("MAX_CONNECTIONS=%u", |
| 606 | [+][+] | | set->login_max_connections)); |
 |
 |
| |