LDRA Testbed Code Review Report

LDRA Testbed ® Code Review Report

# System : Dovecot-src-director

Overall Result: FAIL

Report Production | Report Configuration | Analysis phases
--- | --- | ---
C/C++ LDRA Testbed Version: 8.3.0 Config. File: C:\Testbed\CCPP_830_Release\C\sate_creport.dat Produced On: Mon Aug 09 2010 at 17:06:34 Penalty File: C:\Testbed\CCPP_830_Release\c\cpen.dat | Report Level: Summary Report Procedures Reported: Fails Only Programming Standards Model: SATE 2010 L1 Plus Line Numbers refer to: Original Source File Violation Details: Violations Only Reporting Scope: Full analysis scope | Static: Yes Complexity: Yes Static Data Flow: Yes Information Flow: Yes Cross Reference: Yes

#### Contents

Overall Quality Summary

- Totals of Violations for each Standard
- Table of Procedure Results
- Table of Source Files in System
- Table of Global Basic Information

Report on Program Components

- Quality Results Global Program and Selected Procedures

## Overall Quality Summary

#### Totals for Violated Quality Standards

Number of Violations | LDRA Code | (M) Mandatory Standards | CERT Code
--- | --- | --- | ---
76 | 77 S | Macro replacement list needs parentheses. | CERT PRE02-C
48 | 78 S | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
2 | 403 S | Negative (or potentially negative) shift. | CERT INT34-C
3 | 483 S | free parameter is not heap item. | CERT MEM34-C
11 | 484 S | Attempt to use already freed object. | CERT MEM31-C
2 | 577 S | Sizeof argument is a pointer. | CERT EXP01-C
34 | 5 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
150 | 45 D | Pointer not checked for null before use | CERT EXP08-C,EXP34-C
7 | 50 D | Memory not freed after last reference. | CERT MEM00-C
15 | 51 D | Attempt to read from freed memory. | CERT MEM30-C
13 | 57 D | Global not initialised at declaration. | CERT EXP33-C
112 | 69 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
18 | 77 D | Local structure returned in function result |
1 | 86 D | User input not checked before use. | CERT FIO30-C
37 | 1 X | Declaration types do not match across a system. | CERT ARR31-C

Number of Violations | LDRA Code | (C) Checking (Mandatory) Standards | CERT Code
--- | --- | --- | ---
10 | 76 D | Procedure not called in code analysed |

Number of Violations | LDRA Code | (O) Optional Standards | CERT Code
--- | --- | --- | ---
3 | 80 D | Potentially unused function return value. | CERT FIO04-C

Number of Mandatory Standards checked | 27
Number of Checking Standards checked | 1
Number of Optional Standards checked | 3
Total Standards checked | 31

### OVERALL RESULT: FAIL

Out of 188 program components, 78 (41.49 %) pass ( of which 1 conditionally passes ) and 110 fail ( of which 0 fail only because of insufficient comments )

#### Procedure Results

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | Global Program |
Pass |  | auth_connection_input |  | auth-connection.c |  | 0 |  | 0 |
FAIL |  | auth_connection_init |  | auth-connection.c |  | 1 | - |  | 16 | - |
Pass |  | auth_connection_set_callback |  | auth-connection.c |  | 0 |  | 0 |
Pass |  | auth_connection_connect |  | auth-connection.c |  | 0 |  | 0 |
FAIL |  | auth_connection_deinit |  | auth-connection.c |  | 1 | - |  | 2 | - |
Pass |  | auth_connection_disconnected |  | auth-connection.c |  | 0 |  | 0 |
Pass |  | auth_connection_send |  | auth-connection.c |  | 0 |  | 0 |
Pass |  | auth_connections_deinit |  | auth-connection.c |  | 0 |  | 0 |
Pass |  | buffer_get_data |  | buffer.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | buffer_get_used_size |  | buffer.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_create_from_buffer_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
FAIL |  | array_create_i |  | array.h analysed in director-connection.c |  | 1 | - |  | 17 | - |
Pass |  | array_free_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_is_created_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_get_pool_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_clear_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_append_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_append_array_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_insert_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_delete_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_get_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_idx_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_get_modifiable_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_append_space_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_copy |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | array_count_i |  | array.h analysed in director-connection.c |  | 0 |  | 0 |
Pass |  | director_args_parse_ip_port |  | director-connection.c |  | 0 |  | 0 |
FAIL |  | director_cmd_me |  | director-connection.c |  | 2 | - |  | 12 | - |
FAIL |  | director_user_refresh |  | director-connection.c |  | 1 | - |  | 2 | - |
FAIL |  | director_handshake_cmd_user |  | director-connection.c |  | 1 | - |  | 20 | - |
FAIL |  | director_cmd_user |  | director-connection.c |  | 1 | - |  | 19 | - |
FAIL |  | director_cmd_director |  | director-connection.c |  | 1 | - |  | 23 | - |
FAIL |  | director_cmd_host_hand_start |  | director-connection.c |  | 2 | - |  | 12 | - |
FAIL |  | director_cmd_is_seen |  | director-connection.c |  | 1 | - |  | 21 | - |
FAIL |  | director_cmd_host_int |  | director-connection.c |  | 2 | - |  | 14 | - |
FAIL |  | director_cmd_host_handshake |  | director-connection.c |  | 1 | - |  | 17 | - |
FAIL |  | director_cmd_host |  | director-connection.c |  | 1 | - |  | 24 | - |
FAIL |  | director_cmd_host_remove |  | director-connection.c |  | 2 | - |  | 26 | - |
FAIL |  | director_cmd_host_flush |  | director-connection.c |  | 2 | - |  | 24 | - |
Pass |  | director_handshake_cmd_done |  | director-connection.c |  | 0 |  | 0 |
FAIL |  | director_connection_handle_handshake |  | director-connection.c |  | 2 | - |  | 4 | - |
FAIL |  | director_connection_sync |  | director-connection.c |  | 1 | - |  | 9 | - |
FAIL |  | director_cmd_connect |  | director-connection.c |  | 1 | - |  | 10 | - |
Pass |  | director_cmd_pong |  | director-connection.c |  | 0 |  | 0 |
FAIL |  | director_connection_handle_line |  | director-connection.c |  | 1 | - |  | 2 | - |
FAIL |  | director_connection_input |  | director-connection.c |  | 1 | - |  | 2 | - |
Pass |  | director_connec ion_send_directors |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connection_send_hosts |  | director-connection.c |  | 0 |  | 0 |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | director_connection_send_users |  | director-connection.c |  | 1 | - |  | 2 | - |
Pass |  | director_connection_output |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connec ion_init_timeout |  | director-connection.c |  | 0 |  | 0 |
FAIL |  | director_connection_init_common |  | director-connection.c |  | 1 | - |  | 12 | - |
Pass |  | director_connec ion_send_handshake |  | director-connection.c |  | 0 |  | 0 |
FAIL |  | director_connection_init_in |  | director-connection.c |  | 1 | - |  | 12 | - |
FAIL |  | director_connection_connected |  | director-connection.c |  | 1 | - |  | 11 | - |
FAIL |  | director_connection_init_out |  | director-connection.c |  | 1 | - |  | 18 | - |
FAIL |  | director_connection_deinit |  | director-connection.c |  | 1 | - |  | 4 | - |
FAIL |  | director_connection_disconnected |  | director-connection.c |  | 1 | - |  | 8 | - |
Pass |  | director_connection_timeout |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connection_send |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connec ion_send_except |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connec ion_ping_timeout |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connection_ping |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connection_get_name |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connection_get_host |  | director-connection.c |  | 0 |  | 0 |
FAIL |  | director_connection_find_outgoing |  | director-connection.c |  | 1 | - |  | 4 | - |
Pass |  | director_connection_cork |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connection_uncork |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_connection_wait_sync |  | director-connection.c |  | 0 |  | 0 |
Pass |  | director_host_cmp |  | director-host.c |  | 0 |  | 0 |
Pass |  | director_host_cmp_p |  | director-host.c |  | 0 |  | 0 |
FAIL |  | director_host_add |  | director-host.c |  | 1 | - |  | 13 | - |
FAIL |  | director_host_free |  | director-host.c |  | 1 | - |  | 30 | - |
Pass |  | director_host_get |  | director-host.c |  | 0 |  | 0 |
Pass |  | director_host_lookup |  | director-host.c |  | 0 |  | 0 |
Pass |  | director_host_lookup_ip |  | director-host.c |  | 0 |  | 0 |
Conditional Pass |  | director_host_cmp_to_self |  | director-host.c |  | 1 | - |  | 2 | - |
FAIL |  | director_host_add_string |  | director-host.c |  | 2 | - |  | 13 | - |
FAIL |  | director_host_add_from_string |  | director-host.c |  | 2 | - |  | 18 | - |
FAIL |  | director_request_timeout |  | director-request.c |  | 1 | - |  | 11 | - |
FAIL |  | director_request |  | director-request.c |  | 1 | - |  | 10 | - |
Pass |  | ring_noconn_warning |  | director-request.c |  | 0 |  | 0 |
Pass |  | ring_log_delayed_warning |  | director-request.c |  | 0 |  | 0 |
FAIL |  | director_request_continue |  | director-request.c |  | 1 | - |  | 6 | - |
FAIL |  | host_unref |  | director-test.c |  | 1 | - |  | 8 | - |
FAIL |  | client_username_check |  | director-test.c |  | 2 | - |  | 17 | - |
FAIL |  | user_free |  | director-test.c |  | 1 | - |  | 19 | - |
FAIL |  | imap_client_parse_input |  | director-test.c |  | 1 | - |  | 5 | - |
FAIL |  | imap_client_input |  | director-test.c |  | 1 | - |  | 7 | - |
FAIL |  | imap_client_create |  | director-test.c |  | 1 | - |  | 4 | - |
FAIL |  | imap_client_destroy |  | director-test.c |  | 1 | - |  | 4 | - |
FAIL |  | director_connection_input |  | director-test.c |  | 1 | - |  | 11 | - |
FAIL |  | director_connection_in_input |  | director-test.c |  | 1 | - |  | 20 | - |
FAIL |  | director_connection_out_input |  | director-test.c |  | 1 | - |  | 20 | - |
FAIL |  | director_connection_timeout |  | director-test.c |  | 1 | - |  | 14 | - |
FAIL |  | director_connection_create |  | director-test.c |  | 1 | - |  | 3 | - |
Pass |  | director_connection_destroy |  | director-test.c |  | 0 |  | 0 |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | client_connected |  | director-test.c |  | 1 | - |  | 16 | - |
Pass |  | admin_send |  | director-test.c |  | 0 |  | 0 |
FAIL |  | admin_input |  | director-test.c |  | 1 | - |  | 4 | - |
FAIL |  | admin_random_action |  | director-test.c |  | 1 | - |  | 15 | - |
FAIL |  | admin_connect |  | director-test.c |  | 1 | - |  | 5 | - |
FAIL |  | admin_disconnect |  | director-test.c |  | 1 | - |  | 14 | - |
FAIL |  | admin_read_hosts |  | director-test.c |  | 1 | - |  | 13 | - |
FAIL |  | director_connection_disconnect_timeout |  | director-test.c |  | 1 | - |  | 6 | - |
FAIL |  | main_init |  | director-test.c |  | 1 | - |  | 11 | - |
FAIL |  | main_deinit |  | director-test.c |  | 2 | - |  | 10 | - |
FAIL |  | main |  | director-test.c |  | 1 | - |  | 17 | - |
FAIL |  | director_is_self_ip_set |  | director.c |  | 1 | - |  | 23 | - |
FAIL |  | director_find_self_ip |  | director.c |  | 1 | - |  | 4 | - |
Pass |  | director_find_self |  | director.c |  | 0 |  | 0 |
FAIL |  | director_find_self_idx |  | director.c |  | 1 | - |  | 3 | - |
FAIL |  | director_connect_host |  | director.c |  | 1 | - |  | 3 | - |
FAIL |  | director_get_preferred_right_host |  | director.c |  | 1 | - |  | 6 | - |
FAIL |  | director_connect |  | director.c |  | 1 | - |  | 5 | - |
Pass |  | director_set_ring_handshaked |  | director.c |  | 0 |  | 0 |
Pass |  | director_reconnect_timeout |  | director.c |  | 0 |  | 0 |
Pass |  | director_set_ring_synced |  | director.c |  | 0 |  | 0 |
Pass |  | director_sync |  | director.c |  | 0 |  | 0 |
Pass |  | director_sync_freeze |  | director.c |  | 0 |  | 0 |
Pass |  | director_sync_thaw |  | director.c |  | 0 |  | 0 |
FAIL |  | director_update_host |  | director.c |  | 1 | - |  | 5 | - |
FAIL |  | director_remove_host |  | director.c |  | 1 | - |  | 7 | - |
FAIL |  | director_flush_host |  | director.c |  | 1 | - |  | 5 | - |
Pass |  | director_update_user |  | director.c |  | 0 |  | 0 |
Pass |  | director_set_state_changed |  | director.c |  | 0 |  | 0 |
Pass |  | director_update_send |  | director.c |  | 0 |  | 0 |
FAIL |  | director_init |  | director.c |  | 1 | - |  | 29 | - |
FAIL |  | director_deinit |  | director.c |  | 1 | - |  | 6 | - |
FAIL |  | doveadm_cmd_host_list |  | doveadm-connection.c |  | 1 | - |  | 11 | - |
FAIL |  | doveadm_cmd_director_list |  | doveadm-connection.c |  | 1 | - |  | 11 | - |
FAIL |  | doveadm_cmd_host_set |  | doveadm-connection.c |  | 2 | - |  | 15 | - |
FAIL |  | doveadm_cmd_host_remove |  | doveadm-connection.c |  | 2 | - |  | 27 | - |
FAIL |  | doveadm_cmd_host_flush_all |  | doveadm-connection.c |  | 1 | - |  | 7 | - |
FAIL |  | doveadm_cmd_host_flush |  | doveadm-connection.c |  | 2 | - |  | 16 | - |
FAIL |  | doveadm_cmd_user_lookup |  | doveadm-connection.c |  | 1 | - |  | 5 | - |
FAIL |  | doveadm_connection_input |  | doveadm-connection.c |  | 1 | - |  | 2 | - |
FAIL |  | doveadm_connection_init |  | doveadm-connection.c |  | 1 | - |  | 13 | - |
Pass |  | doveadm_connection_deinit |  | doveadm-connection.c |  | 0 |  | 0 |
Pass |  | doveadm_connections_deinit |  | doveadm-connection.c |  | 0 |  | 0 |
FAIL |  | login_connection_input |  | login-connection.c |  | 1 | - |  | 3 | - |
Pass |  | login_connection_send_line |  | login-connection.c |  | 0 |  | 0 |
FAIL |  | login_host_callback |  | login-connection.c |  | 2 | - |  | 18 | - |
FAIL |  | auth_input_line |  | login-connection.c |  | 1 | - |  | 3 | - |
FAIL |  | login_connection_init |  | login-connection.c |  | 1 | - |  | 12 | - |
FAIL |  | login_connection_deinit |  | login-connection.c |  | 1 | - |  | 2 | - |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | login_connection_unref |  | login-connection.c |  | 1 | - |  | 10 | - |
Pass |  | login_connections_deinit |  | login-connection.c |  | 0 |  | 0 |
Pass |  | mail_host_cmp |  | mail-host.c |  | 0 |  | 0 |
Pass |  | mail_hosts_sort |  | mail-host.c |  | 0 |  | 0 |
FAIL |  | mail_host_add_ip |  | mail-host.c |  | 1 | - |  | 25 | - |
FAIL |  | mail_host_add |  | mail-host.c |  | 1 | - |  | 33 | - |
FAIL |  | mail_hosts_add_range |  | mail-host.c |  | 1 | - |  | 5 | - |
FAIL |  | mail_hosts_parse_and_add |  | mail-host.c |  | 1 | - |  | 2 | - |
Pass |  | mail_host_set_vhost_count |  | mail-host.c |  | 0 |  | 0 |
FAIL |  | mail_host_remove |  | mail-host.c |  | 1 | - |  | 3 | - |
Pass |  | mail_host_lookup |  | mail-host.c |  | 0 |  | 0 |
Pass |  | mail_host_get_by_hash |  | mail-host.c |  | 0 |  | 0 |
Pass |  | mail_hosts_get |  | mail-host.c |  | 0 |  | 0 |
FAIL |  | mail_hosts_init |  | mail-host.c |  | 1 | - |  | 27 | - |
FAIL |  | mail_hosts_deinit |  | mail-host.c |  | 1 | - |  | 11 | - |
FAIL |  | mail_host_dup |  | mail-host.c |  | 1 | - |  | 33 | - |
FAIL |  | mail_hosts_dup |  | mail-host.c |  | 1 | - |  | 17 | - |
Pass |  | director_client_connected |  | main.c |  | 0 |  | 0 |
FAIL |  | client_connected |  | main.c |  | 2 | - |  | 11 | - |
FAIL |  | find_inet_listener_port |  | main.c |  | 1 | - |  | 13 | - |
FAIL |  | director_state_changed |  | main.c |  | 1 | - |  | 2 | - |
FAIL |  | main_init |  | main.c |  | 1 | - |  | 21 | - |
FAIL |  | main_deinit |  | main.c |  | 1 | - |  | 29 | - |
FAIL |  | main |  | main.c |  | 2 | - |  | 8 | - |
FAIL |  | notify_connection_input |  | notify-connection.c |  | 1 | - |  | 3 | - |
FAIL |  | notify_connection_init |  | notify-connection.c |  | 1 | - |  | 30 | - |
Pass |  | notify_connection_deinit |  | notify-connection.c |  | 0 |  | 0 |
Pass |  | user_move_iters |  | user-directory.c |  | 0 |  | 0 |
Pass |  | user_free |  | user-directory.c |  | 0 |  | 0 |
Pass |  | user_directory_drop_expired |  | user-directory.c |  | 0 |  | 0 |
Pass |  | user_directory_lookup |  | user-directory.c |  | 0 |  | 0 |
FAIL |  | user_directory_add |  | user-directory.c |  | 1 | - |  | 11 | - |
Pass |  | user_directory_refresh |  | user-directory.c |  | 0 |  | 0 |
FAIL |  | user_directory_remove_host |  | user-directory.c |  | 1 | - |  | 9 | - |
FAIL |  | user_directory_get_username_hash |  | user-directory.c |  | 1 | - |  | 19 | - |
FAIL |  | user_directory_user_has_connections |  | user-directory.c |  | 1 | - |  | 33 | - |
FAIL |  | user_directory_init |  | user-directory.c |  | 1 | - |  | 30 | - |
FAIL |  | user_directory_deinit |  | user-directory.c |  | 1 | - |  | 3 | - |
FAIL |  | user_directory_iter_init |  | user-directory.c |  | 1 | - |  | 30 | - |
FAIL |  | user_directory_iter_next |  | user-directory.c |  | 1 | - |  | 8 | - |
FAIL |  | user_directory_iter_deinit |  | user-directory.c |  | 1 | - |  | 7 | - |

#### Global Information

#### Source Files in System

Name | Last Modification Date
--- | ---
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\user-directory.c | Mon Jun 21 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\notify-connection.c | Tue May 25 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\main.c | Thu Jun 24 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\mail-host.c | Fri Jun 18 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\login-connection.c | Mon May 31 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\doveadm-connection.c | Thu Jun 24 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\director.c | Thu Jun 24 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\director-test.c | Thu Jun 24 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\director-settings.c | Fri Jun 25 08:22:16 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\director-request.c | Thu Jun 24 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\director-host.c | Thu Jun 17 19:00:06 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\director-connection.c | Thu Jun 24 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\director\auth-connection.c | Thu Jun 24 19:00:04 2010

#### Global Basic Information

Number of procedures: | 187
Number of locally uncalled procedures: | 0
Maximum loop depth: | 2
Total Cyclomatic Complexity: | 557
Number of reformatted executable lines: | 6495
Number of lines of comments: | 9730

## Summary Report on all Program Components which FAIL

Globals / code outside procedures - FAIL

#### Standards Violation Summary - All files

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | compat.h: 214 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 215 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 216 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 217 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 218 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 219 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 220 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 221 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 222 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 223 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 224 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 225 | Macro replacement list needs parentheses. | CERT PRE02-C
M | compat.h: 226 | Macro replacement list needs parentheses. | CERT PRE02-C
M | macros.h: 196 | Macro replacement list needs parentheses. | CERT PRE02-C
M | macros.h: 197 | Macro replacement list needs parentheses. | CERT PRE02-C
M | macros.h: 204 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | macros.h: 204 | Macro replacement list needs parentheses. | CERT PRE02-C
M | macros.h: 205 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | macros.h: 205 | Macro replacement list needs parentheses. | CERT PRE02-C
M | macros.h: 223 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | macros.h: 223 | Macro replacement list needs parentheses. | CERT PRE02-C
M | macros.h: 232 | Macro replacement list needs parentheses. | CERT PRE02-C
M | data-stack.h: 49 | Macro replacement list needs parentheses. | CERT PRE02-C
M | data-stack.h: 51 | Macro replacement list needs parentheses. | CERT PRE02-C
M | data-stack.h: 75 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | data-stack.h: 85 | Macro replacement list needs parentheses. | CERT PRE02-C
M | data-stack.h: 90 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | data-stack.h: 90 | Macro replacement list needs parentheses. | CERT PRE02-C
M | data-stack.h: 97 | Macro replacement list needs parentheses. | CERT PRE02-C
M | mempool.h: 84 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | mempool.h: 87 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | mempool.h: 88 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | mempool.h: 99 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | mempool.h: 99 | Macro replacement list needs parentheses. | CERT PRE02-C
M | mempool.h: 102 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | mempool.h: 102 | Macro replacement list needs parentheses. | CERT PRE02-C
M | imem.h: 8 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | imem.h: 8 | Macro replacement list needs parentheses. | CERT PRE02-C
M | imem.h: 14 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | imem.h: 14 | Macro replacement list needs parentheses. | CERT PRE02-C
M | imem.h: 15 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | imem.h: 15 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array-decl.h: 4 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array-decl.h: 4 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array-decl.h: 7 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array-decl.h: 7 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array-decl.h: 9 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array-decl.h: 9 | Macro replacement list needs parentheses. | CERT PRE02-C
M | ioloop.h: 50 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | ioloop.h: 50 | Macro replacement list needs parentheses. | CERT PRE02-C

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | ioloop.h: 56 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | ioloop.h: 75 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | ioloop.h: 75 | Macro replacement list needs parentheses. | CERT PRE02-C
M | istream.h: 53 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | istream.h: 53 | Macro replacement list needs parentheses. | CERT PRE02-C
M | ostream.h: 61 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | ostream.h: 61 | Macro replacement list needs parentheses. | CERT PRE02-C
M | llist.h: 5 | Macro replacement list needs parentheses. | CERT PRE02-C
M | llist.h: 12 | Macro replacement list needs parentheses. | CERT PRE02-C
M | llist.h: 25 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | llist.h: 25 | Macro replacement list needs parentheses. | CERT PRE02-C
M | llist.h: 32 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | llist.h: 32 | Macro replacement list needs parentheses. | CERT PRE02-C
M | llist.h: 39 | Macro replacement list needs parentheses. | CERT PRE02-C
M | auth-connection.c: 28 | Global not initialised at declaration. : auth_connections | CERT EXP33-C
M | array.h: 35 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 35 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 37 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 37 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 39 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 39 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 53 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 58 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 58 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 62 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 62 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 90 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 90 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 102 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 102 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 110 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 118 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 126 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 134 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 143 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 143 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 153 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 164 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 164 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 174 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 174 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 183 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 183 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 192 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 192 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 201 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 201 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 206 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 206 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 211 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | array.h: 211 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 216 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 216 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 228 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 232 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 232 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 252 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 257 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 261 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 266 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 279 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 279 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 46 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 46 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 50 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 50 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 54 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 54 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 58 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 58 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 62 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 62 | Macro replacement list needs parentheses. | CERT PRE02-C
M | director-settings.c: 18 | Sizeof argument is a pointer. | CERT EXP01-C
M | director-settings.c: 28 | Sizeof argument is a pointer. | CERT EXP01-C
M | director-settings.c: 61 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | director-settings.c: 61 | Macro replacement list needs parentheses. | CERT PRE02-C
M | imap-arg.h: 51 | Macro replacement list needs parentheses. | CERT PRE02-C
M | director-test.c: 90 | Global not initialised at declaration. : imap_clients | CERT EXP33-C
M | director-test.c: 91 | Global not initialised at declaration. : director_connections | CERT EXP33-C
M | director-test.c: 92 | Global not initialised at declaration. : users | CERT EXP33-C
M | director-test.c: 93 | Global not initialised at declaration. : hosts | CERT EXP33-C
M | director-test.c: 94 | Global not initialised at declaration. : hosts_array | CERT EXP33-C
M | director-test.c: 95 | Global not initialised at declaration. : admin | CERT EXP33-C
M | director-test.c: 96 | Global not initialised at declaration. : to_disconnect | CERT EXP33-C
M | director-test.c: 94 | Procedure contains UR data flow anomalies. : hosts_array.arr.buffer | CERT EXP33-C
| 597 |  |
M | director-test.c: 94 | Procedure contains UR data flow anomalies. : hosts_array.arr.element_size | CERT EXP33-C
| 597 |  |
M | director-test.c: 94 | Procedure contains UR data flow anomalies. : hosts_array.v | CERT EXP33-C
| 597 |  |
M | director-test.c: 94 | Procedure contains UR data flow anomalies. : hosts_array.v_modifiable | CERT EXP33-C
| 597 |  |
M | ioloop.h: 38 | Procedure contains UR data flow anomalies. : ioloop_time | CERT EXP33-C
| 33 |  |
M | doveadm-connection.c: 38 | Global not initialised at declaration. : doveadm_connections | CERT EXP33-C
M | login-connection.c: 35 | Global not initialised at declaration. : login_connections | CERT EXP33-C
M | main.c: 25 | Global not initialised at declaration. : director | CERT EXP33-C
M | main.c: 26 | Global not initialised at declaration. : notify_conn | CERT EXP33-C
M | main.c: 27 | Global not initialised at declaration. : auth_socket_path | CERT EXP33-C
M | main.c: 218 | Memory not freed after last reference. : auth_socket_path | CERT MEM00-C

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | main.c: 26 | Procedure contains UR data flow anomalies. : notify_conn | CERT EXP33-C
| 214 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

auth_connection_init (59 to 68 auth-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 67 | Local structure returned in function result : conn |
M | 64 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 63 |  |
M | 63 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 269) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

auth_connection_deinit (94 to 111 auth-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 110 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 109 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

array_create_i (93 to 101 array.h analysed in director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 100 | Pointer not checked for null before use : buffer | CERT EXP08-C,EXP34-C
| 99 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_me (88 to 173 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 115 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 108 |  |
M | 154 | Pointer not checked for null before use : connect_str | CERT EXP08-C,EXP34-C
| 120 |  |
M | 139 | Pointer not checked for null before use : (conn)->name | CERT EXP08-C,EXP34-C
| 115 |  |
M | 133 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 114 |  |
M | 156 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 114 |  |
M | 170 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 156 |  |
M | 133 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 156 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 170 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 94 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 105 |  |
M | 94 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 105 |  |
M | 94 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 105 |  |
M | 95 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 97 |  |
M | 94 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 95 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 94 | director-connection.c | 105 | ip.family
director-connection.c | 94 | director-connection.c | 105 | ip.u.ip4
director-connection.c | 94 | director-connection.c | 105 | ip.u.ip6
director-connection.c | 95 | director-connection.c | 97 | port
director-connection.c | 95 | director-connection.c | 105 | port

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_user_refresh (175 to 215 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 185 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 183 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_handshake_cmd_user (217 to 244 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 222 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 235 |  |
M | 222 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 235 |  |
M | 222 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 235 |  |
M | 221 | Procedure contains UR data flow anomalies. : timestamp | CERT EXP33-C
| 229 |  |
M | 221 | Procedure contains UR data flow anomalies. : username_hash | CERT EXP33-C
| 227 |  |
M | 222 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 222 | director-connection.c | 235 | ip.family
director-connection.c | 222 | director-connection.c | 235 | ip.u.ip4
director-connection.c | 222 | director-connection.c | 235 | ip.u.ip6
director-connection.c | 221 | director-connection.c | 229 | timestamp
director-connection.c | 221 | director-connection.c | 242 | timestamp
director-connection.c | 221 | director-connection.c | 227 | username_hash
director-connection.c | 221 | director-connection.c | 242 | username_hash

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_user (246 to 271 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 250 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 261 |  |
M | 250 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 261 |  |
M | 250 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 261 |  |
M | 252 | Procedure contains UR data flow anomalies. : user | CERT EXP33-C
| 269 |  |
M | 249 | Procedure contains UR data flow anomalies. : username_hash | CERT EXP33-C
| 255 |  |
M | 250 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 250 | director-connection.c | 261 | ip.family
director-connection.c | 250 | director-connection.c | 261 | ip.u.ip4
director-connection.c | 250 | director-connection.c | 261 | ip.u.ip6
director-connection.c | 252 | director-connection.c | 269 | user
director-connection.c | 249 | director-connection.c | 255 | username_hash
director-connection.c | 249 | director-connection.c | 267 | username_hash

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_director (273 to 294 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 277 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 283 |  |
M | 277 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 283 |  |
M | 277 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 283 |  |
M | 278 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 280 |  |
M | 277 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 278 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 277 | director-connection.c | 283 | ip.family
director-connection.c | 277 | director-connection.c | 283 | ip.u.ip4
director-connection.c | 277 | director-connection.c | 283 | ip.u.ip6
director-connection.c | 278 | director-connection.c | 280 | port
director-connection.c | 278 | director-connection.c | 283 | port

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_host_hand_start (296 to 323 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 315 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 315 | Pointer not checked for null before use : hostp | CERT EXP08-C,EXP34-C
| 314 |  |
M | 313 | Pointer not checked for null before use : hosts | CERT EXP08-C,EXP34-C
| 312 |  |
M | 302 | Procedure contains UR data flow anomalies. : remote_ring_completed | CERT EXP33-C
| 304 |  |
M | 300 | Declaration types do not match across a system. : hosts | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 302 | director-connection.c | 304 | remote_ring_completed
director-connection.c | 302 | director-connection.c | 310 | remote_ring_completed

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_is_seen (325 to 360 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 350 | Procedure contains UR data flow anomalies. : dir_host | CERT EXP33-C
| 422 |  |
M | 331 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 345 |  |
M | 331 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 345 |  |
M | 331 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 345 |  |
M | 332 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 337 |  |
M | 332 | Procedure contains UR data flow anomalies. : seq | CERT EXP33-C
| 338 |  |
M | 331 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 332 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 331 | director-connection.c | 345 | ip.family
director-connection.c | 331 | director-connection.c | 345 | ip.u.ip4
director-connection.c | 331 | director-connection.c | 345 | ip.u.ip6
director-connection.c | 332 | director-connection.c | 337 | port
director-connection.c | 332 | director-connection.c | 345 | port
director-connection.c | 332 | director-connection.c | 338 | seq
director-connection.c | 332 | director-connection.c | 352 | seq

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_host_int (362 to 398 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 393 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 386 |  |
M | 367 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 384 |  |
M | 367 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 384 |  |
M | 367 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 384 |  |
M | 368 | Procedure contains UR data flow anomalies. : vhost_count | CERT EXP33-C
| 373 |  |
M | 367 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 368 | Declaration types do not match across a system. : vhost_count | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 367 | director-connection.c | 384 | ip.family
director-connection.c | 367 | director-connection.c | 384 | ip.u.ip4
director-connection.c | 367 | director-connection.c | 384 | ip.u.ip6
director-connection.c | 368 | director-connection.c | 373 | vhost_count
director-connection.c | 368 | director-connection.c | 389 | vhost_count

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_host_handshake (400 to 405 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 404 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_host (407 to 416 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 415 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 413 |  |
M | 415 | Pointer not checked for null before use : dir_host | CERT EXP08-C,EXP34-C
| 413 |  |
M | 410 | Procedure contains UR data flow anomalies. : dir_host | CERT EXP33-C
| 413 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 410 | director-connection.c | 413 | dir_host
director-connection.c | 350 | director-connection.c | 415 | dir_host

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_host_remove (418 to 440 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 430 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 427 |  |
M | 438 | Pointer not checked for null before use : dir_host | CERT EXP08-C,EXP34-C
| 427 |  |
M | 440 | Memory not freed after last reference. : host | CERT MEM00-C
M | 422 | Procedure contains UR data flow anomalies. : dir_host | CERT EXP33-C
| 427 |  |
M | 424 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 436 |  |
M | 424 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 436 |  |
M | 424 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 436 |  |
M | 424 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 422 | director-connection.c | 427 | dir_host
director-connection.c | 350 | director-connection.c | 438 | dir_host
director-connection.c | 424 | director-connection.c | 436 | ip.family
director-connection.c | 424 | director-connection.c | 436 | ip.u.ip4
director-connection.c | 424 | director-connection.c | 436 | ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_host_flush (442 to 466 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 455 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 452 |  |
M | 464 | Pointer not checked for null before use : dir_host | CERT EXP08-C,EXP34-C
| 452 |  |
M | 446 | Procedure contains UR data flow anomalies. : dir_host | CERT EXP33-C
| 452 |  |
M | 448 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 462 |  |
M | 448 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 462 |  |
M | 448 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 462 |  |
M | 449 | Procedure contains UR data flow anomalies. : seq | CERT EXP33-C
| 457 |  |
M | 448 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 446 | director-connection.c | 452 | dir_host
director-connection.c | 350 | director-connection.c | 464 | dir_host
director-connection.c | 448 | director-connection.c | 462 | ip.family
director-connection.c | 448 | director-connection.c | 462 | ip.u.ip4
director-connection.c | 448 | director-connection.c | 462 | ip.u.ip6
director-connection.c | 449 | director-connection.c | 457 | seq

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_handle_handshake (506 to 592 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 548 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 547 |  |
M | 511 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 547 |  |
M | 511 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 547 |  |
M | 511 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 547 |  |
M | 512 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 543 |  |
M | 511 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 512 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 511 | director-connection.c | 547 | ip.family
director-connection.c | 511 | director-connection.c | 547 | ip.u.ip4
director-connection.c | 511 | director-connection.c | 547 | ip.u.ip6
director-connection.c | 512 | director-connection.c | 543 | port

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_sync (594 to 644 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 599 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 611 |  |
M | 599 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 611 |  |
M | 599 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 611 |  |
M | 600 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 603 |  |
M | 600 | Procedure contains UR data flow anomalies. : seq | CERT EXP33-C
| 604 |  |
M | 599 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 600 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 599 | director-connection.c | 611 | ip.family
director-connection.c | 599 | director-connection.c | 611 | ip.u.ip4
director-connection.c | 599 | director-connection.c | 611 | ip.u.ip6
director-connection.c | 600 | director-connection.c | 603 | port
director-connection.c | 600 | director-connection.c | 611 | port
director-connection.c | 600 | director-connection.c | 604 | seq
director-connection.c | 600 | director-connection.c | 616 | seq

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_cmd_connect (646 to 694 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 651 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 660 |  |
M | 651 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 660 |  |
M | 651 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 660 |  |
M | 652 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 655 |  |
M | 651 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 652 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-connection.c | 651 | director-connection.c | 660 | ip.family
director-connection.c | 651 | director-connection.c | 660 | ip.u.ip4
director-connection.c | 651 | director-connection.c | 660 | ip.u.ip6
director-connection.c | 652 | director-connection.c | 655 | port
director-connection.c | 652 | director-connection.c | 660 | port

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_handle_line (708 to 758 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 715 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 714 |  |
M | 730 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 715 |  |
M | 741 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 715 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_input (760 to 798 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 793 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 789 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_send_users (824 to 863 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 844 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 840 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_init_common (885 to 901 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 900 | Local structure returned in function result : conn |
M | 891 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 890 |  |
M | 890 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 270) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_init_in (912 to 926 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 925 | Local structure returned in function result : conn |
M | 919 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 918 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_connected (928 to 967 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 960 | Pointer not checked for null before use : (conn)->name | CERT EXP08-C,EXP34-C
| 956 |  |
M | 963 | Pointer not checked for null before use : (conn)->name | CERT EXP08-C,EXP34-C
| 956 |  |
M | 965 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 955 |  |
M | 965 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 966 | Pointer not checked for null before use : (conn)->name | CERT EXP08-C,EXP34-C
| 956 |  |
M | 961 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 931 |  |
M | 955 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 952 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_init_out (969 to 986 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 985 | Local structure returned in function result : conn |
M | 979 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 978 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_deinit (988 to 1024 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1017 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 1016 |  |
M | 1017 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 1017 | Pointer not checked for null before use : (conn)->name | CERT EXP08-C,EXP34-C
| 1016 |  |
M | 1016 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 1002 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_disconnected (1026 to 1034 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1033 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 1031 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_find_outgoing (1102 to 1113 director-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1110 | Local structure returned in function result : conn |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_host_add (25 to 42 director-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 41 | Local structure returned in function result : host |
M | 32 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 31 |  |
M | 31 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 271) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_host_free (44 to 48 director-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 47 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 46 |  |
M | 47 | Pointer not checked for null before use : (host)->name | CERT EXP08-C,EXP34-C
| 46 |  |
M | 46 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 271) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_host_add_string (109 to 129 director-host.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 124 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 119 |  |
M | 111 | Procedure contains UR data flow anomalies. : ips | CERT EXP33-C
| 124 |  |
M | 112 | Procedure contains UR data flow anomalies. : ips_count | CERT EXP33-C
| 124 |  |
M | 112 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 117 |  |
M | 112 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-host.c | 111 | director-host.c | 124 | ips
director-host.c | 112 | director-host.c | 124 | ips_count
director-host.c | 112 | director-host.c | 117 | port

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_host_add_from_string (131 to 149 director-host.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 137 | Pointer not checked for null before use : tmp | CERT EXP08-C,EXP34-C
| 136 |  |
M | 143 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 145 |  |
M | 143 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 145 |  |
M | 143 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 145 |  |
M | 143 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-host.c | 143 | director-host.c | 145 | ip.family
director-host.c | 143 | director-host.c | 145 | ip.u.ip4
director-host.c | 143 | director-host.c | 145 | ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_request_timeout (24 to 43 director-request.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 30 | Pointer not checked for null before use : requestp | CERT EXP08-C,EXP34-C
| 29 |  |
M | 32 | Pointer not checked for null before use : request | CERT EXP08-C,EXP34-C
| 30 |  |
M | 43 | Memory not freed after last reference. : request | CERT MEM00-C
M | 38 | Attempt to read from freed memory. : default_pool | CERT MEM30-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_request (45 to 68 director-request.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 52 | Pointer not checked for null before use : request | CERT EXP08-C,EXP34-C
| 51 |  |
M | 51 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 272) |  |
M | 67 | Pointer not checked for null before use : request | CERT EXP08-C,EXP34-C
| 58 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_request_continue (92 to 127 director-request.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 123 | Pointer not checked for null before use : user | CERT EXP08-C,EXP34-C
| 119 |  |
M | 125 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 104 |  |
M | 119 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 104 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

host_unref (102 to 113 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 112 | free parameter is not heap item. | CERT MEM34-C
M | 113 | Memory not freed after last reference. : host | CERT MEM00-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

client_username_check (115 to 157 director-test.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 132 | Attempt to use already freed object. | CERT MEM31-C
M | 133 | Attempt to use already freed object. | CERT MEM31-C
M | 141 | Attempt to use already freed object. | CERT MEM31-C
M | 144 | Attempt to use already freed object. | CERT MEM31-C
M | 145 | Attempt to use already freed object. | CERT MEM31-C
M | 129 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 128 |  |
M | 139 | Pointer not checked for null before use : user | CERT EXP08-C,EXP34-C
| 138 |  |
M | 119 | Procedure contains UR data flow anomalies. : local_ip.family | CERT EXP33-C
| 124 |  |
M | 119 | Procedure contains UR data flow anomalies. : local_ip.u.ip4 | CERT EXP33-C
| 124 |  |
M | 119 | Procedure contains UR data flow anomalies. : local_ip.u.ip6 | CERT EXP33-C
| 124 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-test.c | 119 | director-test.c | 124 | local_ip.family
director-test.c | 119 | director-test.c | 124 | local_ip.u.ip4
director-test.c | 119 | director-test.c | 124 | local_ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_free (159 to 167 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 166 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 165 |  |
M | 166 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 166 | Pointer not checked for null before use : (user)->username | CERT EXP08-C,EXP34-C
| 165 |  |
M | 165 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 161 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

imap_client_parse_input (169 to 219 director-test.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 172 | Procedure contains UR data flow anomalies. : args | CERT EXP33-C
| 175 |  |
M | 171 | Procedure contains UR data flow anomalies. : cmd | CERT EXP33-C
| 186 |  |
M | 171 | Procedure contains UR data flow anomalies. : str | CERT EXP33-C
| 194 |  |
M | 171 | Procedure contains UR data flow anomalies. : tag | CERT EXP33-C
| 182 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-test.c | 172 | director-test.c | 175 | args
director-test.c | 171 | director-test.c | 186 | cmd
director-test.c | 171 | director-test.c | 194 | str
director-test.c | 171 | director-test.c | 182 | tag

[ | Top of Report | | | Procedure Table | | | Contents | ]

imap_client_input (221 to 242 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 240 | Pointer not checked for null before use : client | CERT EXP08-C,EXP34-C
| 237 |  |
M | 240 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 237 |  |
C | 221 | Procedure not called in code analysed : imap_client_input |

[ | Top of Report | | | Procedure Table | | | Contents | ]

imap_client_create (244 to 258 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 249 | Pointer not checked for null before use : client | CERT EXP08-C,EXP34-C
| 248 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

imap_client_destroy (260 to 287 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 284 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 283 |  |
M | 284 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 284 | Pointer not checked for null before use : (client)->username | CERT EXP08-C,EXP34-C
| 283 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_input (289 to 311 director-test.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 293 | Procedure contains UR data flow anomalies. : data | CERT EXP33-C
| 296 |  |
M | 294 | Procedure contains UR data flow anomalies. : size | CERT EXP33-C
| 296 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-test.c | 293 | director-test.c | 296 | data
director-test.c | 294 | director-test.c | 296 | size

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_in_input (313 to 316 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 313 | Procedure not called in code analysed : director_connection_in_input |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_out_input (318 to 321 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 318 | Procedure not called in code analysed : director_connection_out_input |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_timeout (323 to 330 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 323 | Procedure not called in code analysed : director_connection_timeout |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_create (332 to 358 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 345 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 344 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

client_connected (384 to 401 director-test.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 386 | Procedure contains UR data flow anomalies. : local_ip.family | CERT EXP33-C
| 395 |  |
M | 386 | Procedure contains UR data flow anomalies. : local_ip.u.ip4 | CERT EXP33-C
| 395 |  |
M | 386 | Procedure contains UR data flow anomalies. : local_ip.u.ip6 | CERT EXP33-C
| 395 |  |
M | 387 | Procedure contains UR data flow anomalies. : local_port | CERT EXP33-C
| 389 |  |
C | 384 | Procedure not called in code analysed : client_connected |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-test.c | 386 | director-test.c | 395 | local_ip.family
director-test.c | 386 | director-test.c | 395 | local_ip.u.ip4
director-test.c | 386 | director-test.c | 395 | local_ip.u.ip6
director-test.c | 387 | director-test.c | 389 | local_port

[ | Top of Report | | | Procedure Table | | | Contents | ]

admin_input (410 to 421 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 410 | Procedure not called in code analysed : admin_input |

[ | Top of Report | | | Procedure Table | | | Contents | ]

admin_random_action (423 to 439 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 434 | Pointer not checked for null before use : hosts | CERT EXP08-C,EXP34-C
| 431 |  |
C | 423 | Procedure not called in code analysed : admin_random_action |
M | 425 | Declaration types do not match across a system. : hosts | CERT ARR31-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

admin_connect (441 to 469 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 468 | Local structure returned in function result : conn |
M | 448 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 447 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

admin_disconnect (471 to 483 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 482 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 481 |  |
M | 482 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 482 | Pointer not checked for null before use : (conn)->path | CERT EXP08-C,EXP34-C
| 481 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

admin_read_hosts (485 to 509 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 499 | Attempt to use already freed object. | CERT MEM31-C
M | 500 | Attempt to use already freed object. | CERT MEM31-C
M | 502 | Attempt to use already freed object. | CERT MEM31-C
M | 503 | Attempt to use already freed object. | CERT MEM31-C
M | 499 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 495 |  |
M | 499 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 498 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connection_disconnect_timeout (511 to 526 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 522 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 522 |  |
C | 511 | Procedure not called in code analysed : director_connection_disconnect_timeout |

[ | Top of Report | | | Procedure Table | | | Contents | ]

main_init (528 to 544 director-test.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 538 | Pointer not checked for null before use : admin | CERT EXP08-C,EXP34-C
| 537 |  |
M | 539 | Pointer not checked for null before use : hosts | CERT EXP08-C,EXP34-C
| 532 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

main_deinit (546 to 580 director-test.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 579 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 573 |  |
M | 565 | Attempt to read from freed memory. : user | CERT MEM30-C
M | 549 | Procedure contains UR data flow anomalies. : key | CERT EXP33-C
| 563 |  |
M | 549 | Procedure contains UR data flow anomalies. : value | CERT EXP33-C
| 563 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-test.c | 549 | director-test.c | 563 | key
director-test.c | 549 | director-test.c | 563 | value

[ | Top of Report | | | Procedure Table | | | Contents | ]

main (582 to 603 director-test.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 599 | Pointer not checked for null before use : to_disconnect | CERT EXP08-C,EXP34-C
| 597 |  |
M | 599 | Pointer not checked for null before use : users | CERT EXP08-C,EXP34-C
| 597 |  |
M | 599 | Pointer not checked for null before use : hosts | CERT EXP08-C,EXP34-C
| 597 |  |
M | 597 | Attempt to read from freed memory. : default_pool | CERT MEM30-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director-test.c | 94 | director-test.c | 597 | hosts_array.arr.buffer
director-test.c | 94 | director-test.c | 597 | hosts_array.arr.element_size
director-test.c | 94 | director-test.c | 597 | hosts_array.v
director-test.c | 94 | director-test.c | 597 | hosts_array.v_modifiable
ioloop.h | 38 | director-test.c | 599 | ioloop_time

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_is_self_ip_set (16 to 29 director.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 18 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 20 |  |
M | 18 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 20 |  |
M | 18 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 20 |  |
M | 18 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
director.c | 18 | director.c | 20 | ip.family
director.c | 18 | director.c | 20 | ip.u.ip4
director.c | 18 | director.c | 20 | ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_find_self_ip (31 to 44 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 33 | Declaration types do not match across a system. : hosts | CERT ARR31-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_find_self_idx (63 to 76 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 65 | Declaration types do not match across a system. : hosts | CERT ARR31-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connect_host (78 to 100 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 80 | Declaration types do not match across a system. : port | CERT ARR31-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_get_preferred_right_host (102 to 114 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 105 | Declaration types do not match across a system. : hosts | CERT ARR31-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_connect (116 to 151 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 130 | Pointer not checked for null before use : hosts | CERT EXP08-C,EXP34-C
| 126 |  |
M | 136 | Pointer not checked for null before use : dir.self_ip | CERT EXP08-C,EXP34-C
| 121 |  |
M | 118 | Declaration types do not match across a system. : hosts | CERT ARR31-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_update_host (277 to 294 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 286 | Pointer not checked for null before use : orig_src | CERT EXP08-C,EXP34-C
| 285 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_remove_host (296 to 315 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 303 | Pointer not checked for null before use : orig_src | CERT EXP08-C,EXP34-C
| 302 |  |
M | 313 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 312 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_flush_host (317 to 332 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 323 | Pointer not checked for null before use : orig_src | CERT EXP08-C,EXP34-C
| 322 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_init (358 to 375 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 374 | Local structure returned in function result : dir |
M | 366 | Pointer not checked for null before use : dir | CERT EXP08-C,EXP34-C
| 365 |  |
M | 365 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 275) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_deinit (377 to 403 director.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 390 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 389 |  |
M | 391 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 390 |  |
M | 389 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 387 |  |
M | 402 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 398 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_cmd_host_list (42 to 54 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 52 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 45 |  |
M | 48 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 45 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_cmd_director_list (56 to 67 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 65 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 59 |  |
M | 62 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 59 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_cmd_host_set (69 to 98 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 94 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 94 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 91 |  |
M | 75 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 89 |  |
M | 75 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 89 |  |
M | 75 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 89 |  |
M | 75 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 76 | Declaration types do not match across a system. : vhost_count | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
doveadm-connection.c | 75 | doveadm-connection.c | 89 | ip.family
doveadm-connection.c | 75 | doveadm-connection.c | 89 | ip.u.ip4
doveadm-connection.c | 75 | doveadm-connection.c | 89 | ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_cmd_host_remove (100 to 119 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 114 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 119 | Memory not freed after last reference. : host | CERT MEM00-C
M | 104 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 110 |  |
M | 104 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 110 |  |
M | 104 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 110 |  |
M | 104 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
doveadm-connection.c | 104 | doveadm-connection.c | 110 | ip.family
doveadm-connection.c | 104 | doveadm-connection.c | 110 | ip.u.ip4
doveadm-connection.c | 104 | doveadm-connection.c | 110 | ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_cmd_host_flush_all (121 to 131 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 127 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_cmd_host_flush (133 to 157 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 152 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 137 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 148 |  |
M | 137 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 148 |  |
M | 137 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 148 |  |
M | 137 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
doveadm-connection.c | 137 | doveadm-connection.c | 148 | ip.family
doveadm-connection.c | 137 | doveadm-connection.c | 148 | ip.u.ip4
doveadm-connection.c | 137 | doveadm-connection.c | 148 | ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_cmd_user_lookup (159 to 196 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 173 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 165 |  |
M | 164 | Procedure contains UR data flow anomalies. : username_hash | CERT EXP33-C
| 167 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
doveadm-connection.c | 164 | doveadm-connection.c | 167 | username_hash

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_connection_input (198 to 246 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 227 | Pointer not checked for null before use : cmd | CERT EXP08-C,EXP34-C
| 223 |  |
M | 232 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 224 |  |
M | 245 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 234 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

doveadm_connection_init (248 to 263 doveadm-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 262 | Local structure returned in function result : conn |
M | 254 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 253 |  |
M | 253 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 276) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

login_connection_input (39 to 55 login-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 54 | User input not checked before use. : buf | CERT FIO30-C
| 44 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

login_host_callback (72 to 97 login-connection.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 95 | free parameter is not heap item. | CERT MEM34-C
M | 95 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 94 |  |
M | 96 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 95 |  |
M | 96 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 96 | Pointer not checked for null before use : context.line | CERT EXP08-C,EXP34-C
| 95 |  |
M | 91 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 87 |  |
M | 95 | Procedure contains UR data flow anomalies. : context.line | CERT EXP33-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
login-connection.c | 204 | login-connection.c | 96 | context.conn
login-connection.c | 95 | login-connection.c | 96 | context.line

[ | Top of Report | | | Procedure Table | | | Contents | ]

auth_input_line (99 to 156 login-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 118 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 117 |  |
M | 151 | Pointer not checked for null before use : request | CERT EXP08-C,EXP34-C
| 150 |  |
M | 124 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 124 |  |
M | 140 | Pointer not checked for null before use : username | CERT EXP08-C,EXP34-C
| 131 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

login_connection_init (158 to 175 login-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 174 | Local structure returned in function result : conn |
M | 165 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 164 |  |
M | 164 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 277) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

login_connection_deinit (177 to 198 login-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 195 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 194 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

login_connection_unref (200 to 209 login-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 209 | Memory not freed after last reference. : conn | CERT MEM00-C
M | 204 | Procedure contains UR data flow anomalies. : context.conn | CERT EXP33-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_host_add_ip (37 to 49 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 48 | Local structure returned in function result : host |
M | 43 | Pointer not checked for null before use : host | CERT EXP08-C,EXP34-C
| 42 |  |
M | 42 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 278) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_host_add (51 to 62 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 53 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 60 |  |
M | 53 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 60 |  |
M | 53 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 60 |  |
M | 53 | Declaration types do not match across a system. : ip | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
mail-host.c | 53 | mail-host.c | 60 | ip.family
mail-host.c | 53 | mail-host.c | 60 | ip.u.ip4
mail-host.c | 53 | mail-host.c | 60 | ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_hosts_add_range (64 to 131 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 67 | Procedure contains UR data flow anomalies. : ip1.family | CERT EXP33-C
| 80 |  |
M | 67 | Procedure contains UR data flow anomalies. : ip1.u.ip4 | CERT EXP33-C
| 127 |  |
M | 67 | Procedure contains UR data flow anomalies. : ip1.u.ip6 | CERT EXP33-C
| 127 |  |
M | 67 | Procedure contains UR data flow anomalies. : ip2.family | CERT EXP33-C
| 80 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
mail-host.c | 67 | mail-host.c | 80 | ip1.family
mail-host.c | 67 | mail-host.c | 127 | ip1.u.ip4
mail-host.c | 67 | mail-host.c | 127 | ip1.u.ip6
mail-host.c | 67 | mail-host.c | 80 | ip2.family

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_hosts_parse_and_add (133 to 161 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 142 | Pointer not checked for null before use : tmp | CERT EXP08-C,EXP34-C
| 141 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_host_remove (170 to 185 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 172 | Declaration types do not match across a system. : hosts | CERT ARR31-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_hosts_init (225 to 233 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 232 | Local structure returned in function result : list |
M | 230 | Pointer not checked for null before use : list | CERT EXP08-C,EXP34-C
| 229 |  |
M | 229 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 278) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_hosts_deinit (235 to 247 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 247 | Memory not freed after last reference. : hostp | CERT MEM00-C
M | 246 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 242 |  |
M | 246 | Attempt to read from freed memory. : default_pool | CERT MEM30-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_host_dup (249 to 256 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 254 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 253 |  |
M | 253 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 278) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

mail_hosts_dup (258 to 270 mail-host.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 269 | Local structure returned in function result : dest |
M | 266 | Pointer not checked for null before use : dest_host | CERT EXP08-C,EXP34-C
| 265 |  |
M | 268 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 263 |  |
M | 266 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 263 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

client_connected (41 to 90 main.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 75 | Pointer not checked for null before use : name | CERT EXP08-C,EXP34-C
| 73 |  |
M | 45 | Procedure contains UR data flow anomalies. : ip.family | CERT EXP33-C
| 59 |  |
M | 45 | Procedure contains UR data flow anomalies. : ip.u.ip4 | CERT EXP33-C
| 61 |  |
M | 45 | Procedure contains UR data flow anomalies. : ip.u.ip6 | CERT EXP33-C
| 61 |  |
M | 44 | Procedure contains UR data flow anomalies. : path | CERT EXP33-C
| 66 |  |
M | 46 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 58 |  |
C | 41 | Procedure not called in code analysed : client_connected |
M | 45 | Declaration types do not match across a system. : ip | CERT ARR31-C
M | 46 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
main.c | 45 | main.c | 59 | ip.family
main.c | 45 | main.c | 61 | ip.family
main.c | 45 | main.c | 61 | ip.u.ip4
main.c | 45 | main.c | 61 | ip.u.ip6
main.c | 44 | main.c | 66 | path
main.c | 46 | main.c | 58 | port

[ | Top of Report | | | Procedure Table | | | Contents | ]

find_inet_listener_port (92 to 104 main.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 94 | Procedure contains UR data flow anomalies. : port | CERT EXP33-C
| 100 |  |
M | 94 | Declaration types do not match across a system. : port | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
main.c | 94 | main.c | 100 | port

[ | Top of Report | | | Procedure Table | | | Contents | ]

director_state_changed (106 to 124 main.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 106 | Procedure not called in code analysed : director_state_changed |

[ | Top of Report | | | Procedure Table | | | Contents | ]

main_init (126 to 150 main.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 134 | Pointer not checked for null before use : set | CERT EXP08-C,EXP34-C
| 132 |  |
M | 145 | Pointer not checked for null before use : director | CERT EXP08-C,EXP34-C
| 143 |  |
M | 129 | Procedure contains UR data flow anomalies. : listen_ip.family | CERT EXP33-C
| 137 |  |
M | 129 | Procedure contains UR data flow anomalies. : listen_ip.u.ip4 | CERT EXP33-C
| 137 |  |
M | 129 | Procedure contains UR data flow anomalies. : listen_ip.u.ip6 | CERT EXP33-C
| 137 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
main.c | 129 | main.c | 137 | listen_ip.family
main.c | 129 | main.c | 137 | listen_ip.u.ip4
main.c | 129 | main.c | 137 | listen_ip.u.ip6

[ | Top of Report | | | Procedure Table | | | Contents | ]

main_deinit (152 to 161 main.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 160 | free parameter is not heap item. | CERT MEM34-C
M | 157 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 156 |  |
M | 158 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 157 |  |
M | 160 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 158 |  |
M | 156 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 155 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

main (163 to 218 main.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 214 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 203 |  |
M | 200 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 214 | Pointer not checked for null before use : auth_socket_path | CERT EXP08-C,EXP34-C
| 200 |  |
M | 170 | Procedure contains UR data flow anomalies. : error | CERT EXP33-C
| 190 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
main.c | 170 | main.c | 190 | error
ioloop.h | 38 | main.c | 203 | ioloop_time
main.c | 26 | main.c | 214 | notify_conn

[ | Top of Report | | | Procedure Table | | | Contents | ]

notify_connection_input (20 to 37 notify-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 36 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 28 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

notify_connection_init (39 to 50 notify-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 49 | Local structure returned in function result : conn |
M | 45 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 44 |  |
M | 44 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 280) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_add (67 to 82 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 81 | Local structure returned in function result : user |
M | 74 | Pointer not checked for null before use : user | CERT EXP08-C,EXP34-C
| 73 |  |
M | 73 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 281) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_remove_host (93 to 104 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 101 | Pointer not checked for null before use : next | CERT EXP08-C,EXP34-C
| 99 |  |
M | 102 | Attempt to read from freed memory. : user | CERT MEM30-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_get_username_hash (106 to 115 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Violation | Standard
--- | --- | ---
M | Procedure contains UR data flow anomalies. | CERT EXP33-C

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 113 | Negative (or potentially negative) shift. | CERT INT34-C
M | 108 | Procedure contains UR data flow anomalies. : md5 | CERT EXP33-C
| 111 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
user-directory.c | 108 | user-directory.c | 111 | md5

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_user_has_connections (117 to 123 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 117 | Negative (or potentially negative) shift. | CERT INT34-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_init (125 to 135 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 134 | Local structure returned in function result : dir |
M | 130 | Pointer not checked for null before use : dir | CERT EXP08-C,EXP34-C
| 129 |  |
M | 129 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 281) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_deinit (137 to 150 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 149 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 146 |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_iter_init (152 to 162 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 161 | Local structure returned in function result : iter |
M | 158 | Pointer not checked for null before use : iter | CERT EXP08-C,EXP34-C
| 157 |  |
M | 157 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 281) |  |

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_iter_next (164 to 174 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 173 | Local structure returned in function result : user |

[ | Top of Report | | | Procedure Table | | | Contents | ]

user_directory_iter_deinit (176 to 192 user-directory.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 184 | Attempt to use already freed object. | CERT MEM31-C
M | 187 | Attempt to use already freed object. | CERT MEM31-C

[ | Top of Report | | | Procedure Table | | | Contents | ]

### End of Code Review Report

###

### Copyright © 2010 Liverpool Data Research Associates