LDRA Testbed Code Review Report

LDRA Testbed ® Code Review Report

# System : Dovecot-src-config

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 16:58:56 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
--- | --- | --- | ---
3 | 47 S | Array Bound exceeded. | CERT ARR30-C
111 | 77 S | Macro replacement list needs parentheses. | CERT PRE02-C
84 | 78 S | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
1 | 486 S | Insufficient formats in output function. | CERT FIO00-C
19 | 577 S | Sizeof argument is a pointer. | CERT EXP01-C
17 | 5 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
238 | 45 D | Pointer not checked for null before use | CERT EXP08-C,EXP34-C
4 | 51 D | Attempt to read from freed memory. | CERT MEM30-C
5 | 57 D | Global not initialised at declaration. | CERT EXP33-C
49 | 69 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
8 | 77 D | Local structure returned in function result |
2 | 86 D | User input not checked before use. | CERT FIO30-C
2 | 1 X | Declaration types do not match across a system. | CERT ARR31-C

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

Number of Violations | LDRA Code | (O) Optional Standards | CERT Code
--- | --- | --- | ---
1 | 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 134 program components, 58 (43.28 %) pass ( of which 0 conditionally pass ) and 76 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 |  | buffer_get_data |  | buffer.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | buffer_get_used_size |  | buffer.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_create_from_buffer_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
FAIL |  | array_create_i |  | array.h analysed in all-settings.c |  | 1 | - |  | 17 | - |
Pass |  | array_free_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_is_created_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_get_pool_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_clear_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_append_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_append_array_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_insert_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_delete_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_get_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_idx_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_get_modifiable_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_append_space_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_copy |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
Pass |  | array_count_i |  | array.h analysed in all-settings.c |  | 0 |  | 0 |
FAIL |  | mail_storage_settings_check |  | all-settings.c |  | 1 | - |  | 1 | - |
FAIL |  | namespace_settings_check |  | all-settings.c |  | 1 | - |  | 3 | - |
Pass |  | mail_user_settings_check |  | all-settings.c |  | 0 |  | 0 |
Pass |  | master_service_settings_check |  | all-settings.c |  | 0 |  | 0 |
FAIL |  | pop3_settings_parse_workarounds |  | all-settings.c |  | 1 | - |  | 5 | - |
Pass |  | pop3_settings_verify |  | all-settings.c |  | 0 |  | 0 |
Pass |  | expand_user |  | all-settings.c |  | 0 |  | 0 |
Pass |  | fix_file_listener_paths |  | all-settings.c |  | 0 |  | 0 |
FAIL |  | add_inet_listeners |  | all-settings.c |  | 1 | - |  | 3 | - |
Pass |  | master_settings_parse_type |  | all-settings.c |  | 0 |  | 0 |
Pass |  | service_set_login_dump_core |  | all-settings.c |  | 0 |  | 0 |
Pass |  | services_have_protocol |  | all-settings.c |  | 0 |  | 0 |
FAIL |  | master_settings_verify |  | all-settings.c |  | 2 | - |  | 1 | - |
Pass |  | ssl_settings_check |  | all-settings.c |  | 0 |  | 0 |
Pass |  | login_settings_check |  | all-settings.c |  | 0 |  | 0 |
FAIL |  | imap_settings_parse_workarounds |  | all-settings.c |  | 1 | - |  | 5 | - |
Pass |  | imap_settings_verify |  | all-settings.c |  | 0 |  | 0 |
FAIL |  | auth_settings_check |  | all-settings.c |  | 2 | - |  | 5 | - |
Pass |  | auth_passdb_settings_check |  | all-settings.c |  | 0 |  | 0 |
Pass |  | auth_userdb_settings_check |  | all-settings.c |  | 0 |  | 0 |
Pass |  | config_connection_next_line |  | config-connection.c |  | 0 |  | 0 |
FAIL |  | config_request_output |  | config-connection.c |  | 1 | - |  | 7 | - |
FAIL |  | config_connection_request |  | config-connection.c |  | 1 | - |  | 6 | - |
FAIL |  | config_connection_input |  | config-connection.c |  | 2 | - |  | 4 | - |
FAIL |  | config_connection_create |  | config-connection.c |  | 2 | - |  | 36 | - |
FAIL |  | config_connection_destroy |  | config-connection.c |  | 1 | - |  | 3 | - |
FAIL |  | config_connections_destroy_all |  | config-connection.c |  | 3 | - |  | 82 | - |
Pass |  | config_filter_match_service |  | config-filter.c |  | 0 |  | 0 |
Pass |  | config_filter_match_rest |  | config-filter.c |  | 0 |  | 0 |
Pass |  | config_filter_match |  | config-filter.c |  | 0 |  | 0 |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
Pass |  | config_filters_equal |  | config-filter.c |  | 0 |  | 0 |
FAIL |  | config_filter_init |  | config-filter.c |  | 2 | - |  | 33 | - |
Pass |  | config_filter_deinit |  | config-filter.c |  | 0 |  | 0 |
Pass |  | config_filter_add_all |  | config-filter.c |  | 0 |  | 0 |
Pass |  | config_filter_parser_cmp |  | config-filter.c |  | 0 |  | 0 |
Pass |  | config_filter_parser_cmp_rev |  | config-filter.c |  | 0 |  | 0 |
Pass |  | str_array_contains |  | config-filter.c |  | 0 |  | 0 |
Pass |  | have_changed_settings |  | config-filter.c |  | 0 |  | 0 |
FAIL |  | config_filter_find_all |  | config-filter.c |  | 2 | - |  | 7 | - |
FAIL |  | config_filter_find_subset |  | config-filter.c |  | 2 | - |  | 8 | - |
Pass |  | config_filter_is_superset |  | config-filter.c |  | 0 |  | 0 |
FAIL |  | config_module_parser_apply_changes |  | config-filter.c |  | 1 | - |  | 4 | - |
FAIL |  | config_filter_parsers_get |  | config-filter.c |  | 2 | - |  | 8 | - |
Pass |  | config_filter_parsers_free |  | config-filter.c |  | 0 |  | 0 |
Pass |  | info_type_name_find |  | config-parser.c |  | 0 |  | 0 |
FAIL |  | config_add_type |  | config-parser.c |  | 1 | - |  | 9 | - |
FAIL |  | config_apply_line |  | config-parser.c |  | 1 | - |  | 2 | - |
Pass |  | fix_relative_path |  | config-parser.c |  | 0 |  | 0 |
FAIL |  | config_module_parsers_init |  | config-parser.c |  | 1 | - |  | 4 | - |
FAIL |  | config_add_new_parser |  | config-parser.c |  | 1 | - |  | 4 | - |
FAIL |  | config_add_new_section |  | config-parser.c |  | 2 | - |  | 25 | - |
FAIL |  | config_filter_parser_find |  | config-parser.c |  | 2 | - |  | 10 | - |
FAIL |  | config_parse_net |  | config-parser.c |  | 2 | - |  | 7 | - |
FAIL |  | config_filter_add_new_filter |  | config-parser.c |  | 1 | - |  | 1 | - |
FAIL |  | config_filter_parser_check |  | config-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | config_all_parsers_check |  | config-parser.c |  | 2 | - |  | 9 | - |
FAIL |  | str_append_file |  | config-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | settings_add_include |  | config-parser.c |  | 1 | - |  | 2 | - |
FAIL |  | settings_include |  | config-parser.c |  | 1 | - |  | 2 | - |
FAIL |  | config_parse_line |  | config-parser.c |  | 2 | - |  | 2 | - |
FAIL |  | config_parse_finish |  | config-parser.c |  | 1 | - |  | 8 | - |
FAIL |  | config_get_value |  | config-parser.c |  | 1 | - |  | 2 | - |
FAIL |  | config_require_key |  | config-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | config_write_value |  | config-parser.c |  | 2 | - |  | 5 | - |
FAIL |  | config_parser_apply_line |  | config-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | config_parse_file |  | config-parser.c |  | 1 | - |  | 21 | - |
FAIL |  | config_parse_load_modules |  | config-parser.c |  | 2 | - |  | 13 | - |
FAIL |  | parsers_are_connected |  | config-parser.c |  | 1 | - |  | 2 | - |
Pass |  | config_module_want_parser |  | config-parser.c |  | 0 |  | 0 |
FAIL |  | config_export_type |  | config-request.c |  | 1 | - |  | 1 | - |
FAIL |  | setting_export_section_name |  | config-request.c |  | 1 | - |  | 3 | - |
FAIL |  | settings_export |  | config-request.c |  | 2 | - |  | 6 | - |
FAIL |  | config_export_init |  | config-request.c |  | 2 | - |  | 13 | - |
FAIL |  | config_export_by_filter |  | config-request.c |  | 1 | - |  | 8 | - |
Pass |  | config_export_parsers |  | config-request.c |  | 0 |  | 0 |
Pass |  | config_export_get_output |  | config-request.c |  | 0 |  | 0 |
Pass |  | config_export_free |  | config-request.c |  | 0 |  | 0 |
FAIL |  | config_export_finish |  | config-request.c |  | 1 | - |  | 3 | - |
FAIL |  | config_request_get_strings |  | doveconf.c |  | 2 | - |  | 13 | - |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
Pass |  | config_string_cmp |  | doveconf.c |  | 0 |  | 0 |
FAIL |  | prefix_stack_pop |  | doveconf.c |  | 2 | - |  | 7 | - |
Pass |  | prefix_stack_reset_str |  | doveconf.c |  | 0 |  | 0 |
FAIL |  | config_dump_human_init |  | doveconf.c |  | 2 | - |  | 17 | - |
Pass |  | config_dump_human_deinit |  | doveconf.c |  | 0 |  | 0 |
FAIL |  | config_dump_human_output |  | doveconf.c |  | 2 | - |  | 6 | - |
Pass |  | config_dump_filter_begin |  | doveconf.c |  | 0 |  | 0 |
Pass |  | config_dump_filter_end |  | doveconf.c |  | 0 |  | 0 |
FAIL |  | config_dump_human_sections |  | doveconf.c |  | 1 | - |  | 6 | - |
FAIL |  | config_dump_human |  | doveconf.c |  | 1 | - |  | 7 | - |
FAIL |  | config_dump_one |  | doveconf.c |  | 1 | - |  | 1 | - |
FAIL |  | config_request_putenv |  | doveconf.c |  | 1 | - |  | 10 | - |
FAIL |  | get_setting |  | doveconf.c |  | 1 | - |  | 5 | - |
FAIL |  | filter_parse_arg |  | doveconf.c |  | 1 | - |  | 6 | - |
FAIL |  | check_wrong_config |  | doveconf.c |  | 2 | - |  | 17 | - |
FAIL |  | main |  | doveconf.c |  | 4 | - |  | 13 | - |
FAIL |  | client_connected |  | main.c |  | 1 | - |  | 25 | - |
FAIL |  | main |  | main.c |  | 3 | - |  | 26 | - |
Pass |  | obsolete |  | old-set-parser.c |  | 0 |  | 0 |
Pass |  | set_rename |  | old-set-parser.c |  | 0 |  | 0 |
FAIL |  | old_settings_handle_root |  | old-set-parser.c |  | 1 | - |  | 4 | - |
FAIL |  | config_apply_login_set |  | old-set-parser.c |  | 1 | - |  | 10 | - |
FAIL |  | config_apply_mail_set |  | old-set-parser.c |  | 1 | - |  | 10 | - |
FAIL |  | config_apply_auth_set |  | old-set-parser.c |  | 1 | - |  | 14 | - |
FAIL |  | listen_has_port |  | old-set-parser.c |  | 1 | - |  | 2 | - |
FAIL |  | old_settings_handle_proto |  | old-set-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | old_auth_section |  | old-set-parser.c |  | 1 | - |  | 1 | - |
Pass |  | old_namespace |  | old-set-parser.c |  | 0 |  | 0 |
FAIL |  | socket_apply |  | old-set-parser.c |  | 2 | - |  | 10 | - |
FAIL |  | old_settings_handle |  | old-set-parser.c |  | 1 | - |  | 2 | - |
Pass |  | old_settings_init |  | old-set-parser.c |  | 0 |  | 0 |
FAIL |  | readfile |  | sysinfo-get.c |  | 1 | - |  | 4 | - |
FAIL |  | lsb_distro_get |  | sysinfo-get.c |  | 2 | - |  | 11 | - |
FAIL |  | distro_get |  | sysinfo-get.c |  | 2 | - |  | 9 | - |
FAIL |  | filesystem_get |  | sysinfo-get.c |  | 3 | - |  | 8 | - |
FAIL |  | sysinfo_get |  | sysinfo-get.c |  | 1 | - |  | 8 | - |

#### Global Information

#### Source Files in System

Name | Last Modification Date
--- | ---
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\sysinfo-get.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\old-set-parser.c | Fri Jun 25 08:22:16 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\main.c | Thu May 27 19:00:08 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\doveconf.c | Mon Jun 14 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\config-settings.c | Fri Jun 25 08:22:16 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\config-request.c | Mon Apr 05 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\config-parser.c | Thu Jun 24 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\config-filter.c | Wed Jun 09 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\config-connection.c | Wed Jun 09 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\config\all-settings.c | Fri Jun 25 08:23:56 2010

#### Global Basic Information

Number of procedures: | 133
Number of locally uncalled procedures: | 0
Maximum loop depth: | 3
Total Cyclomatic Complexity: | 792
Number of reformatted executable lines: | 7332
Number of lines of comments: | 7317

## 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 | 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

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
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
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

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
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 | all-settings.c: 99 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 99 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 103 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 103 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 107 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 107 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 334 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 334 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 395 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 395 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 441 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 441 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 443 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 443 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 512 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 512 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 549 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 549 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 574 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 574 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 614 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 614 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 652 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 652 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 654 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 654 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 703 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 703 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 932 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 962 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 962 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 990 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 1070 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1070 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1072 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1072 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1127 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 1441 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1441 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1468 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1468 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1497 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1497 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1499 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1499 | Macro replacement list needs parentheses. | CERT PRE02-C

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | all-settings.c: 1501 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1501 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1568 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1568 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1570 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1570 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1696 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1696 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1799 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 1829 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1829 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1863 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 1944 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1944 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 1946 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 1946 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2004 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2034 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2034 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2066 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2066 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2108 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2147 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2157 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2189 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2189 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2227 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2257 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2257 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2289 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2336 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2347 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2459 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2459 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2490 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2490 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2517 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2517 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2519 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2519 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2521 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | all-settings.c: 2521 | Macro replacement list needs parentheses. | CERT PRE02-C
M | all-settings.c: 2611 | Sizeof argument is a pointer. | CERT EXP01-C
M | all-settings.c: 2659 | Sizeof argument is a pointer. | CERT EXP01-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

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | llist.h: 39 | 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 | 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
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 | 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 | config-parser-private.h: 57 | Global not initialised at declaration. : hook_config_parser_begin | CERT EXP33-C
M | config-parser.c: 35 | Global not initialised at declaration. : config_module_parsers | CERT EXP33-C
M | config-parser.c: 36 | Global not initialised at declaration. : config_filter | CERT EXP33-C
M | config-parser.c: 37 | Global not initialised at declaration. : modules | CERT EXP33-C
M | config-parser.c: 38 | Global not initialised at declaration. : hook_config_parser_begin | CERT EXP33-C
M | config-settings.c: 17 | Sizeof argument is a pointer. | CERT EXP01-C
M | config-parser.h: 14 | Procedure contains UR data flow anomalies. : config_filter.local_bits | CERT EXP33-C
| 1 (doveconf.c) |  |
M | config-parser.h: 13 | Procedure contains UR data flow anomalies. : config_module_parsers.(root)->module_name | CERT EXP33-C
| 1 (doveconf.c) |  |
M | mempool.h: 58 | Procedure contains UR data flow anomalies. : unsafe_data_stack_pool | CERT EXP33-C
| 58 |  |

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

array_create_i (93 to 101 array.h analysed in all-settings.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 | ]

mail_storage_settings_check (201 to 266 all-settings.c) - FAIL

#### Standards Violation Summary

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

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

namespace_settings_check (268 to 312 all-settings.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 294 | Pointer not checked for null before use : namespaces | CERT EXP08-C,EXP34-C
| 290 |  |
M | 280 | Pointer not checked for null before use : name | CERT EXP08-C,EXP34-C
| 276 |  |

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

pop3_settings_parse_workarounds (1006 to 1031 all-settings.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1017 | Pointer not checked for null before use : list | CERT EXP08-C,EXP34-C
| 1016 |  |
M | 1015 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 1014 |  |

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

add_inet_listeners (1223 to 1240 all-settings.c) - FAIL

#### Standards Violation Summary

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

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

master_settings_verify (1289 to 1438 all-settings.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1326 | Pointer not checked for null before use : services | CERT EXP08-C,EXP34-C
| 1324 |  |
M | 1296 | Procedure contains UR data flow anomalies. : all_listeners.arr.element_size | CERT EXP33-C
| 1429 |  |
M | 1296 | Procedure contains UR data flow anomalies. : all_listeners.arr.buffer | CERT EXP33-C
| 1429 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
all-settings.c | 1296 | all-settings.c | 1429 | all_listeners.arr.element_size
all-settings.c | 1296 | all-settings.c | 1429 | all_listeners.arr.buffer

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

imap_settings_parse_workarounds (1879 to 1904 all-settings.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1890 | Pointer not checked for null before use : list | CERT EXP08-C,EXP34-C
| 1889 |  |
M | 1888 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 1887 |  |

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

auth_settings_check (2352 to 2380 all-settings.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 2365 | Sizeof argument is a pointer. | CERT EXP01-C
M | 2368 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 2368 |  |
M | 2374 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 2373 |  |

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

config_request_output (48 to 64 config-connection.c) - FAIL

#### Standards Violation Summary

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

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

config_connection_request (66 to 141 config-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 101 | Pointer not checked for null before use : path | CERT EXP08-C,EXP34-C
| 100 |  |
M | 113 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 111 |  |
M | 113 | Pointer not checked for null before use : filter.remote_host | CERT EXP08-C,EXP34-C
| 75 |  |
M | 113 | Pointer not checked for null before use : filter.local_host | CERT EXP08-C,EXP34-C
| 75 |  |
M | 113 | Pointer not checked for null before use : filter.local_name | CERT EXP08-C,EXP34-C
| 75 |  |
M | 113 | Pointer not checked for null before use : filter.service | CERT EXP08-C,EXP34-C
| 75 |  |
M | 103 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 101 |  |
M | 98 | Pointer not checked for null before use : module | CERT EXP08-C,EXP34-C
| 80 |  |
M | 113 | Pointer not checked for null before use : config_module_parsers | CERT EXP08-C,EXP34-C
| 101 |  |
M | 113 | Pointer not checked for null before use : config_filter | CERT EXP08-C,EXP34-C
| 101 |  |
M | 119 | Pointer not checked for null before use : s | CERT EXP08-C,EXP34-C
| 119 |  |

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

config_connection_input (143 to 181 config-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 : context | CERT EXP08-C,EXP34-C
| 177 |  |
M | 177 | Attempt to read from freed memory. : context | CERT MEM30-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
config-connection.c | 205 | config-connection.c | 173 | context.input

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

config_connection_create (183 to 194 config-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 193 | Local structure returned in function result : conn |
M | 188 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 187 |  |
M | 187 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1100 (Module 256) |  |
M | 192 | Pointer not checked for null before use : config_connections.next | CERT EXP08-C,EXP34-C
| Ref. Line 0 (Module 256) |  |
M | 192 | Pointer not checked for null before use : config_connections.io | CERT EXP08-C,EXP34-C
| Ref. Line 0 (Module 256) |  |
M | 192 | Pointer not checked for null before use : config_connections.input | CERT EXP08-C,EXP34-C
| Ref. Line 0 (Module 256) |  |
M | 192 | Pointer not checked for null before use : config_connections.output | CERT EXP08-C,EXP34-C
| Ref. Line 0 (Module 256) |  |
M | 192 | Pointer not checked for null before use : config_connections.fd | CERT EXP08-C,EXP34-C
| Ref. Line 0 (Module 256) |  |

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

config_connection_destroy (196 to 208 config-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 205 | Procedure contains UR data flow anomalies. : context.input | CERT EXP33-C

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

config_connections_destroy_all (210 to 214 config-connection.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 213 | Pointer not checked for null before use : config_connections | CERT EXP08-C,EXP34-C
| 213 |  |
M | 213 | Attempt to read from freed memory. : config_connections | CERT MEM30-C
M | 213 | Procedure contains UR data flow anomalies. : config_connections.fd | CERT EXP33-C
M | 213 | Procedure contains UR data flow anomalies. : config_connections.input | CERT EXP33-C
M | 213 | Procedure contains UR data flow anomalies. : config_connections.io | CERT EXP33-C
M | 213 | Procedure contains UR data flow anomalies. : config_connections.next | CERT EXP33-C
M | 213 | Procedure contains UR data flow anomalies. : config_connections.output | CERT EXP33-C
M | 213 | Procedure contains UR data flow anomalies. : config_connections.prev | CERT EXP33-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
[external declaration] |  | config-connection.c | 213 | config_connections.fd
[external declaration] |  | config-connection.c | 213 | config_connections.input
[external declaration] |  | config-connection.c | 213 | config_connections.io
[external declaration] |  | config-connection.c | 213 | config_connections.next
[external declaration] |  | config-connection.c | 213 | config_connections.output
[external declaration] |  | config-connection.c | 213 | config_connections.prev

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

config_filter_init (91 to 98 config-filter.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 97 | Local structure returned in function result : ctx |
M | 96 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 95 |  |

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

config_filter_find_all (188 to 231 config-filter.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 225 | Pointer not checked for null before use : output_r | CERT EXP08-C,EXP34-C
| 197 |  |
M | 207 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 200 |  |
M | 207 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 200 |  |
M | 193 | Procedure contains UR data flow anomalies. : matches.arr.buffer | CERT EXP33-C
| 229 |  |
M | 193 | Procedure contains UR data flow anomalies. : matches.arr.element_size | CERT EXP33-C
| 229 |  |
M | 194 | Procedure contains UR data flow anomalies. : service_names.arr.element_size | CERT EXP33-C
| 224 |  |
M | 194 | Procedure contains UR data flow anomalies. : service_names.v | CERT EXP33-C
| 205 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
config-filter.c | 193 | config-filter.c | 229 | matches.arr.buffer
config-filter.c | 193 | config-filter.c | 229 | matches.arr.element_size
config-filter.c | 194 | config-filter.c | 224 | service_names.arr.element_size
config-filter.c | 194 | config-filter.c | 205 | service_names.v

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

config_filter_find_subset (233 to 264 config-filter.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 259 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 241 |  |
M | 259 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 241 |  |
M | 237 | Procedure contains UR data flow anomalies. : matches.arr.buffer | CERT EXP33-C
| 262 |  |
M | 237 | Procedure contains UR data flow anomalies. : matches.arr.element_size | CERT EXP33-C
| 262 |  |
M | 252 | Procedure contains UR data flow anomalies. : tmp_mask.local_name | CERT EXP33-C
| 238 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
config-filter.c | 237 | config-filter.c | 262 | matches.arr.buffer
config-filter.c | 237 | config-filter.c | 262 | matches.arr.element_size
config-filter.c | 252 | config-filter.c | 258 | tmp_mask.local_name

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

config_module_parser_apply_changes (285 to 303 config-filter.c) - FAIL

#### Standards Violation Summary

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

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

config_filter_parsers_get (305 to 347 config-filter.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 325 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 324 |  |
M | 321 | Pointer not checked for null before use : src | CERT EXP08-C,EXP34-C
| 317 |  |
M | 345 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 322 |  |
M | 337 | Pointer not checked for null before use : error_p | CERT EXP08-C,EXP34-C
| 333 |  |
M | 333 | Procedure contains UR data flow anomalies. : error_p | CERT EXP33-C
| 314 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
config-filter.c | 333 | config-filter.c | 337 | error_p

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

config_add_type (52 to 76 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 61 | Pointer not checked for null before use : info | CERT EXP08-C,EXP34-C
| 60 |  |
M | 66 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 64 |  |
M | 66 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 65 |  |

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

config_apply_line (78 to 102 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_module_parsers_init (119 to 134 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_add_new_parser (136 to 158 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_add_new_section (160 to 170 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 169 | Local structure returned in function result : section |
M | 166 | Pointer not checked for null before use : section | CERT EXP08-C,EXP34-C
| 165 |  |

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

config_filter_parser_find (172 to 185 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 182 | Local structure returned in function result : parser |
M | 176 | Declaration types do not match across a system. : parsers | CERT ARR31-C

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

config_parse_net (187 to 218 config-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 204 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 200 |  |
M | 192 | Procedure contains UR data flow anomalies. : bits | CERT EXP33-C
| 213 |  |
M | 192 | Procedure contains UR data flow anomalies. : ip_count | CERT EXP33-C
| 204 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
config-parser.c | 192 | config-parser.c | 213 | bits
config-parser.c | 192 | config-parser.c | 204 | ip_count

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

config_filter_add_new_filter (220 to 283 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 243 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 241 |  |
M | 264 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 262 |  |

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

config_filter_parser_check (285 to 301 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_all_parsers_check (303 to 334 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 328 | Pointer not checked for null before use : error_r | CERT EXP08-C,EXP34-C
| 320 |  |
M | 328 | Pointer not checked for null before use : tmp_parsers | CERT EXP08-C,EXP34-C
| 320 |  |
M | 332 | Pointer not checked for null before use : tmp_pool | CERT EXP08-C,EXP34-C
| 315 |  |
M | 308 | Declaration types do not match across a system. : parsers | CERT ARR31-C

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

str_append_file (336 to 358 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_add_include (360 to 391 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_include (393 to 438 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_parse_line (440 to 577 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 473 | Array Bound exceeded. | CERT ARR30-C
M | 473 | Array Bound exceeded. | CERT ARR30-C
M | 552 | Array Bound exceeded. | CERT ARR30-C
M | 542 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 541 |  |
M | 508 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 502 |  |
M | 544 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 542 |  |
M | 515 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 508 |  |
M | 466 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 468 |  |

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

config_parse_finish (579 to 599 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 590 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 589 |  |
M | 587 | Pointer not checked for null before use : new_filter | CERT EXP08-C,EXP34-C
| 585 |  |

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

config_get_value (601 to 621 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_require_key (623 to 638 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_write_value (640 to 703 config-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 679 | Pointer not checked for null before use : var_name | CERT EXP08-C,EXP34-C
| 676 |  |
M | 662 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 659 |  |
M | 688 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 646 | Procedure contains UR data flow anomalies. : var_type | CERT EXP33-C
| 680 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
config-parser.c | 646 | config-parser.c | 680 | var_type

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

config_parser_apply_line (705 to 773 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 748 | Pointer not checked for null before use : section_name | CERT EXP08-C,EXP34-C
| 742 |  |
M | 750 | Pointer not checked for null before use : ctx.(cur_section)->parsers | CERT EXP08-C,EXP34-C
| 732 |  |
M | 726 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C

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

config_parse_file (775 to 854 config-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 836 | Pointer not checked for null before use : root.path | CERT EXP08-C,EXP34-C
| 808 |  |
M | 847 | Pointer not checked for null before use : root.prev | CERT EXP08-C,EXP34-C
| 807 |  |
M | 821 | Pointer not checked for null before use : ctx.filter | CERT EXP08-C,EXP34-C
| 793 |  |
M | 821 | Pointer not checked for null before use : ctx.old | CERT EXP08-C,EXP34-C
| 793 |  |
M | 821 | Pointer not checked for null before use : ctx.error | CERT EXP08-C,EXP34-C
| 793 |  |
M | 815 | Pointer not checked for null before use : ctx.root_parsers | CERT EXP08-C,EXP34-C
| 798 |  |
M | 813 | Pointer not checked for null before use : ctx.all_parsers | CERT EXP08-C,EXP34-C
| 793 |  |
M | 821 | Pointer not checked for null before use : ctx.all_parsers.v_modifiable | CERT EXP08-C,EXP34-C
| 793 |  |
M | 821 | Pointer not checked for null before use : ctx.all_parsers.v | CERT EXP08-C,EXP34-C
| 793 |  |
M | 821 | Pointer not checked for null before use : ctx.all_parsers.arr | CERT EXP08-C,EXP34-C
| 793 |  |
M | 821 | Pointer not checked for null before use : ctx.all_parsers.arr.element_size | CERT EXP08-C,EXP34-C
| 793 |  |
M | 821 | Pointer not checked for null before use : ctx.all_parsers.arr.buffer | CERT EXP08-C,EXP34-C
| 793 |  |
M | 815 | Pointer not checked for null before use : ctx.path | CERT EXP08-C,EXP34-C
| 795 |  |
M | 799 | Pointer not checked for null before use : ctx.pool | CERT EXP08-C,EXP34-C
| 794 |  |
M | 833 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 832 |  |
M | 833 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 832 |  |
M | 828 | Pointer not checked for null before use : full_line | CERT EXP08-C,EXP34-C
| 818 |  |
M | 832 | Pointer not checked for null before use : ctx.service | CERT EXP08-C,EXP34-C
| 833 |  |
M | 832 | Pointer not checked for null before use : ctx.local_host | CERT EXP08-C,EXP34-C
| 833 |  |
M | 832 | Pointer not checked for null before use : ctx.local_name | CERT EXP08-C,EXP34-C
| 833 |  |
M | 832 | Pointer not checked for null before use : ctx.remote_host | CERT EXP08-C,EXP34-C
| 833 |  |
M | 815 | Pointer not checked for null before use : ctx.cur_section | CERT EXP08-C,EXP34-C
| 814 |  |
M | 820 | Pointer not checked for null before use : root.input | CERT EXP08-C,EXP34-C
| 819 |  |
M | 821 | Pointer not checked for null before use : ctx.str | CERT EXP08-C,EXP34-C
| 817 |  |
M | 821 | Pointer not checked for null before use : ctx.module | CERT EXP08-C,EXP34-C
| 811 |  |

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 832 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 828 |  |
M | 832 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 828 |  |

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

config_parse_load_modules (856 to 900 config-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 867 | Pointer not checked for null before use : mod_set.version | CERT EXP08-C,EXP34-C
| 866 |  |
M | 868 | Pointer not checked for null before use : modules | CERT EXP08-C,EXP34-C
| 867 |  |
M | 870 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1100 (Module 258) |  |
M | 897 | Pointer not checked for null before use : services | CERT EXP08-C,EXP34-C
| 895 |  |
M | 877 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 871 |  |
M | 877 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 871 |  |
M | 861 | Procedure contains UR data flow anomalies. : new_roots.arr.buffer | CERT EXP33-C
| 890 |  |
M | 861 | Procedure contains UR data flow anomalies. : new_roots.arr.element_size | CERT EXP33-C
| 890 |  |
M | 862 | Procedure contains UR data flow anomalies. : new_services.arr.buffer | CERT EXP33-C
| 898 |  |
M | 862 | Procedure contains UR data flow anomalies. : new_services.arr.element_size | CERT EXP33-C
| 898 |  |
M | 862 | Procedure contains UR data flow anomalies. : new_services.v | CERT EXP33-C
| 898 |  |
M | 862 | Procedure contains UR data flow anomalies. : new_services.v_modifiable | CERT EXP33-C
| 898 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
config-parser.c | 861 | config-parser.c | 890 | new_roots.arr.buffer
config-parser.c | 861 | config-parser.c | 890 | new_roots.arr.element_size
config-parser.c | 862 | config-parser.c | 898 | new_services.arr.buffer
config-parser.c | 862 | config-parser.c | 898 | new_services.arr.element_size
config-parser.c | 862 | config-parser.c | 898 | new_services.v
config-parser.c | 862 | config-parser.c | 898 | new_services.v_modifiable

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

parsers_are_connected (902 to 922 config-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_export_type (33 to 122 config-request.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 82 | Pointer not checked for null before use : sval | CERT EXP08-C,EXP34-C
| 81 |  |
M | 84 | Pointer not checked for null before use : sval | CERT EXP08-C,EXP34-C
| 81 |  |

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

setting_export_section_name (124 to 146 config-request.c) - FAIL

#### Standards Violation Summary

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

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

settings_export (148 to 295 config-request.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 162 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 162 |  |
M | 205 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 163 |  |
M | 205 | Pointer not checked for null before use : default_value | CERT EXP08-C,EXP34-C
| 186 |  |
M | 172 | Pointer not checked for null before use : change_value | CERT EXP08-C,EXP34-C
| 166 |  |
M | 213 | Pointer not checked for null before use : change_value | CERT EXP08-C,EXP34-C
| 166 |  |
M | 222 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 218 |  |
M | 286 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 218 |  |
M | 288 | Pointer not checked for null before use : change_children | CERT EXP08-C,EXP34-C
| 224 |  |
M | 249 | Pointer not checked for null before use : strings | CERT EXP08-C,EXP34-C
| 245 |  |
M | 238 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 235 |  |
M | 254 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 248 |  |
M | 266 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 264 |  |
M | 157 | Procedure contains UR data flow anomalies. : count2 | CERT EXP33-C
| 225 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
config-request.c | 157 | config-request.c | 225 | count2

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

config_export_init (297 to 321 config-request.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 320 | Local structure returned in function result : ctx |
M | 308 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 307 |  |
M | 309 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 308 |  |

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

config_export_by_filter (323 to 336 config-request.c) - FAIL

#### Standards Violation Summary

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

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

config_export_finish (358 to 401 config-request.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 377 | Pointer not checked for null before use : parser | CERT EXP08-C,EXP34-C
| 374 |  |
M | 380 | Pointer not checked for null before use : parser | CERT EXP08-C,EXP34-C
| 374 |  |

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

config_request_get_strings (43 to 70 doveconf.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 55 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 55 |  |
M | 62 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 61 |  |
M | 66 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 65 |  |
M | 69 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 52 |  |
C | 43 | Procedure not called in code analysed : config_request_get_strings |

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

prefix_stack_pop (91 to 107 doveconf.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 106 | Local structure returned in function result : sc |
M | 102 | Pointer not checked for null before use : s | CERT EXP08-C,EXP34-C
| 97 |  |

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

config_dump_human_init (117 to 140 doveconf.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 139 | Local structure returned in function result : ctx |
M | 126 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 125 |  |
M | 127 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 126 |  |

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

config_dump_human_output (149 to 296 doveconf.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 182 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 179 |  |
M | 195 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 192 |  |
M | 197 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 197 |  |
M | 272 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 271 |  |
M | 224 | Pointer not checked for null before use : prefix.prefix_idx | CERT EXP08-C,EXP34-C
| 240 |  |
M | 189 | Pointer not checked for null before use : strings | CERT EXP08-C,EXP34-C
| 170 |  |
M | 178 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 178 |  |
M | 270 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 269 |  |
M | 271 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 270 |  |
M | 244 | Pointer not checked for null before use : key2 | CERT EXP08-C,EXP34-C
| 235 |  |
M | 182 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 173 |  |
M | 182 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 173 |  |
M | 241 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 187 |  |
M | 241 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 187 |  |
M | 156 | Procedure contains UR data flow anomalies. : prefix.prefix_idx | CERT EXP33-C
| 283 |  |
M | 156 | Procedure contains UR data flow anomalies. : prefix.str_pos | CERT EXP33-C
| 281 |  |
M | 159 | Procedure contains UR data flow anomalies. : prefix_count | CERT EXP33-C
| 232 |  |
M | 154 | Procedure contains UR data flow anomalies. : prefixes_arr.arr.buffer | CERT EXP33-C
| 185 |  |
M | 154 | Procedure contains UR data flow anomalies. : prefixes_arr.arr.element_size | CERT EXP33-C
| 185 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
doveconf.c | 156 | doveconf.c | 283 | prefix.prefix_idx
doveconf.c | 156 | doveconf.c | 224 | prefix.prefix_idx
doveconf.c | 156 | doveconf.c | 281 | prefix.str_pos
doveconf.c | 156 | doveconf.c | 218 | prefix.str_pos
doveconf.c | 159 | doveconf.c | 232 | prefix_count
doveconf.c | 154 | doveconf.c | 185 | prefixes_arr.arr.buffer
doveconf.c | 154 | doveconf.c | 185 | prefixes_arr.arr.element_size

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

config_dump_human_sections (361 to 390 doveconf.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 380 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 378 |  |
M | 383 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 377 | Pointer not checked for null before use : filters | CERT EXP08-C,EXP34-C
| 375 |  |

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

config_dump_human (392 to 414 doveconf.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 401 | Pointer not checked for null before use : output | CERT EXP08-C,EXP34-C
| 400 |  |
M | 404 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 403 |  |

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

config_dump_one (416 to 453 doveconf.c) - FAIL

#### Standards Violation Summary

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

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

config_request_putenv (455 to 462 doveconf.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 455 | Procedure not called in code analysed : config_request_putenv |

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

get_setting (464 to 484 doveconf.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 476 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 476 |  |
M | 478 | Pointer not checked for null before use : set | CERT EXP08-C,EXP34-C
| 475 |  |

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

filter_parse_arg (486 to 515 doveconf.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 498 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 494 |  |
M | 499 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 492 |  |
M | 509 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 492 |  |
M | 507 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 505 |  |
M | 511 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 509 |  |

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

check_wrong_config (517 to 530 doveconf.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 522 | Pointer not checked for null before use : base_dir | CERT EXP08-C,EXP34-C
| 521 |  |
M | 523 | Pointer not checked for null before use : symlink_path | CERT EXP08-C,EXP34-C
| 522 |  |
M | 519 | Procedure contains UR data flow anomalies. : prev_path | CERT EXP33-C
| 523 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
doveconf.c | 519 | doveconf.c | 523 | prev_path

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

main (532 to 653 doveconf.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 595 | Insufficient formats in output function. | CERT FIO00-C
M | 583 | Pointer not checked for null before use : config_path | CERT EXP08-C,EXP34-C
| 580 |  |
M | 622 | Pointer not checked for null before use : info | CERT EXP08-C,EXP34-C
| 621 |  |
M | 627 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 634 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 635 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 632 |  |
M | 599 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 635 | Pointer not checked for null before use : config_module_parsers | CERT EXP08-C,EXP34-C
| 601 |  |
M | 635 | Pointer not checked for null before use : config_filter | CERT EXP08-C,EXP34-C
| 601 |  |
M | 583 | Pointer not checked for null before use : orig_config_path | CERT EXP08-C,EXP34-C
| 547 |  |
M | 601 | Pointer not checked for null before use : module | CERT EXP08-C,EXP34-C
| 565 |  |
M | 559 | Pointer not checked for null before use : filter.remote_host | CERT EXP08-C,EXP34-C
| 543 |  |
M | 635 | Pointer not checked for null before use : filter.remote_host | CERT EXP08-C,EXP34-C
| 543 |  |
M | 559 | Pointer not checked for null before use : filter.local_host | CERT EXP08-C,EXP34-C
| 543 |  |
M | 635 | Pointer not checked for null before use : filter.local_host | CERT EXP08-C,EXP34-C
| 543 |  |
M | 559 | Pointer not checked for null before use : filter.local_name | CERT EXP08-C,EXP34-C
| 543 |  |
M | 635 | Pointer not checked for null before use : filter.local_name | CERT EXP08-C,EXP34-C
| 543 |  |
M | 559 | Pointer not checked for null before use : filter.service | CERT EXP08-C,EXP34-C
| 543 |  |
M | 635 | Pointer not checked for null before use : filter.service | CERT EXP08-C,EXP34-C
| 543 |  |
M | 604 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 601 |  |
M | 644 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 601 |  |
M | 599 | Procedure contains UR data flow anomalies. : (default_services)->arr | CERT EXP33-C
M | 599 | Procedure contains UR data flow anomalies. : (modules)->name | CERT EXP33-C
M | 599 | Procedure contains UR data flow anomalies. : (modules)->next | CERT EXP33-C
M | 601 | Procedure contains UR data flow anomalies. : hook_config_parser_begin | CERT EXP33-C
| 57 (config-parser-private.h) |  |
M | 540 | Procedure contains UR data flow anomalies. : ret2 | CERT EXP33-C
| 646 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
[external declaration] |  | doveconf.c | 599 | (default_services)->arr
[external declaration] |  | doveconf.c | 599 | (modules)->name
[external declaration] |  | doveconf.c | 599 | (modules)->next
config-parser.h | 14 | doveconf.c | 635 | config_filter.local_bits
config-parser.h | 14 | doveconf.c | 635 | config_filter.local_name
config-parser.h | 14 | doveconf.c | 635 | config_filter.remote_bits
config-parser.h | 14 | doveconf.c | 635 | config_filter.service
config-parser.h | 13 | doveconf.c | 601 | config_module_parsers.(root)->module_name
config-parser.h | 13 | doveconf.c | 601 | config_module_parsers.root
[external declaration] |  | doveconf.c | 601 | hook_config_parser_begin
doveconf.c | 540 | doveconf.c | 646 | ret2
mempool.h | 58 | doveconf.c | 621 | unsafe_data_stack_pool

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

client_connected (11 to 15 main.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 11 | Procedure not called in code analysed : client_connected |

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

main (17 to 43 main.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 33 | Pointer not checked for null before use : path | CERT EXP08-C,EXP34-C
| 32 |  |
M | 30 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 34 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 33 |  |
M | 37 | Procedure contains UR data flow anomalies. : (default_pool)->v | CERT EXP33-C
M | 30 | Procedure contains UR data flow anomalies. : (default_services)->arr | CERT EXP33-C
M | 30 | Procedure contains UR data flow anomalies. : (modules)->name | CERT EXP33-C
M | 30 | Procedure contains UR data flow anomalies. : (modules)->next | CERT EXP33-C
M | 33 | Procedure contains UR data flow anomalies. : hook_config_parser_begin | CERT EXP33-C
| 57 (config-parser-private.h) |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
[external declaration] |  | main.c | 37 | (default_pool)->v
[external declaration] |  | main.c | 30 | (default_services)->arr
[external declaration] |  | main.c | 30 | (modules)->name
[external declaration] |  | main.c | 30 | (modules)->next
config-parser.h | 13 | main.c | 33 | config_module_parsers.(root)->module_name
config-parser.h | 13 | main.c | 33 | config_module_parsers.root
[external declaration] |  | main.c | 33 | hook_config_parser_begin

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

old_settings_handle_root (57 to 162 old-set-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 76 | Pointer not checked for null before use : protos | CERT EXP08-C,EXP34-C
| 75 |  |
M | 91 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 89 |  |
M | 92 | Pointer not checked for null before use : protos | CERT EXP08-C,EXP34-C
| 91 |  |
M | 97 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 104 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 121 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 119 |  |
M | 157 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 156 |  |
M | 68 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 67 |  |
M | 110 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 109 |  |
M | 96 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 92 |  |
M | 103 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 96 |  |
M | 109 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 103 |  |

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

config_apply_login_set (164 to 183 old-set-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_apply_mail_set (185 to 204 old-set-parser.c) - FAIL

#### Standards Violation Summary

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

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

config_apply_auth_set (206 to 213 old-set-parser.c) - FAIL

#### Standards Violation Summary

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

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

listen_has_port (215 to 232 old-set-parser.c) - FAIL

#### Standards Violation Summary

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

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

old_settings_handle_proto (234 to 401 old-set-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 262 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 266 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 271 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 281 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 285 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 290 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 360 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 357 |  |
M | 275 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 259 |  |
M | 281 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 259 |  |
M | 262 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 259 |  |
M | 266 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 259 |  |
M | 271 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 259 |  |
M | 262 | Pointer not checked for null before use : ssl | CERT EXP08-C,EXP34-C
| 250 |  |

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

old_auth_section (403 to 444 old-set-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 411 | Sizeof argument is a pointer. | CERT EXP01-C

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

socket_apply (461 to 507 old-set-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 506 | Sizeof argument is a pointer. | CERT EXP01-C
M | 474 | Pointer not checked for null before use : path | CERT EXP08-C,EXP34-C
| 472 |  |
M | 496 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 500 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 504 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 478 | Pointer not checked for null before use : path | CERT EXP08-C,EXP34-C
| 476 |  |
M | 496 | Pointer not checked for null before use : prefix | CERT EXP08-C,EXP34-C
| 493 |  |
M | 500 | Pointer not checked for null before use : prefix | CERT EXP08-C,EXP34-C
| 493 |  |
M | 504 | Pointer not checked for null before use : prefix | CERT EXP08-C,EXP34-C
| 493 |  |

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

old_settings_handle (509 to 559 old-set-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 528 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 527 |  |
M | 532 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 527 |  |

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

readfile (15 to 30 sysinfo-get.c) - FAIL

#### Standards Violation Summary

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

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

lsb_distro_get (32 to 55 sysinfo-get.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 47 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 46 |  |
M | 51 | Pointer not checked for null before use : end | CERT EXP08-C,EXP34-C
| 50 |  |
M | 39 | Pointer not checked for null before use : data | CERT EXP08-C,EXP34-C
| 36 |  |
M | 39 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 39 |  |
M | 34 | Procedure contains UR data flow anomalies. : data | CERT EXP33-C
| 39 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
sysinfo-get.c | 34 | sysinfo-get.c | 39 | data

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

distro_get (57 to 82 sysinfo-get.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 77 | Pointer not checked for null before use : name | CERT EXP08-C,EXP34-C
| 76 |  |
M | 70 | Procedure contains UR data flow anomalies. : name | CERT EXP33-C
| 74 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
sysinfo-get.c | 70 | sysinfo-get.c | 74 | name
sysinfo-get.c | 70 | sysinfo-get.c | 77 | name

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

filesystem_get (84 to 106 sysinfo-get.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 105 | Local structure returned in function result : mp |
M | 99 | Pointer not checked for null before use : path | CERT EXP08-C,EXP34-C
| 98 |  |
M | 86 | Procedure contains UR data flow anomalies. : mp.type | CERT EXP33-C
| 105 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
sysinfo-get.c | 86 | sysinfo-get.c | 105 | mp.type

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

sysinfo_get (108 to 127 sysinfo-get.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 126 | Pointer not checked for null before use : distro | CERT EXP08-C,EXP34-C
| 121 |  |
M | 126 | Pointer not checked for null before use : fs | CERT EXP08-C,EXP34-C
| 123 |  |
M | 124 | Pointer not checked for null before use : uname_info | CERT EXP08-C,EXP34-C
| 117 |  |

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

### End of Code Review Report

###

### Copyright © 2010 Liverpool Data Research Associates