LDRA Testbed Code Review Report

LDRA Testbed ® Code Review Report

# System : Dovecot-src-lib-settings

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 19:37:43 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
69 | 77 S | Macro replacement list needs parentheses. | CERT PRE02-C
45 | 78 S | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
22 | 5 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
177 | 45 D | Pointer not checked for null before use | CERT EXP08-C,EXP34-C
37 | 69 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
4 | 77 D | Local structure returned in function result |
1 | 1 X | Declaration types do not match across a system. | CERT ARR31-C

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

Number of Violations | LDRA Code | (O) Optional Standards | CERT Code
--- | --- | --- | ---
4 | 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 91 program components, 43 (47.25 %) pass ( of which 1 conditionally passes ) and 48 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 settings-parser.c |  | 0 |  | 0 |
Pass |  | buffer_get_used_size |  | buffer.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_create_from_buffer_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
FAIL |  | array_create_i |  | array.h analysed in settings-parser.c |  | 1 | - |  | 17 | - |
Pass |  | array_free_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_is_created_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_get_pool_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_clear_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_append_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_append_array_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_insert_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_delete_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_get_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_idx_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_get_modifiable_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_append_space_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_copy |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | array_count_i |  | array.h analysed in settings-parser.c |  | 0 |  | 0 |
Pass |  | settings_parser_init |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | copy_unique_defaults |  | settings-parser.c |  | 4 | - |  | 12 | - |
FAIL |  | setting_parser_copy_defaults |  | settings-parser.c |  | 1 | - |  | 5 | - |
FAIL |  | settings_parser_init_list |  | settings-parser.c |  | 2 | - |  | 6 | - |
Pass |  | settings_parser_deinit |  | settings-parser.c |  | 0 |  | 0 |
Pass |  | settings_parser_get |  | settings-parser.c |  | 0 |  | 0 |
Pass |  | settings_parser_get_list |  | settings-parser.c |  | 0 |  | 0 |
Pass |  | settings_parser_get_changes |  | settings-parser.c |  | 0 |  | 0 |
Pass |  | settings_parser_get_roots |  | settings-parser.c |  | 0 |  | 0 |
Pass |  | settings_parser_get_error |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | setting_define_find |  | settings-parser.c |  | 2 | - |  | 10 | - |
Pass |  | get_bool |  | settings-parser.c |  | 0 |  | 0 |
Pass |  | get_uint |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | get_octal |  | settings-parser.c |  | 2 | - |  | 8 | - |
FAIL |  | settings_get_time |  | settings-parser.c |  | 3 | - |  | 3 | - |
FAIL |  | settings_get_size |  | settings-parser.c |  | 3 | - |  | 7 | - |
Pass |  | get_enum |  | settings-parser.c |  | 0 |  | 0 |
Pass |  | setting_link_init_set_struct |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | setting_link_add |  | settings-parser.c |  | 1 | - |  | 2 | - |
FAIL |  | get_deflist |  | settings-parser.c |  | 1 | - |  | 6 | - |
FAIL |  | settings_parse |  | settings-parser.c |  | 3 | - |  | 6 | - |
Pass |  | settings_find_key |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | settings_parse_strlist |  | settings-parser.c |  | 3 | - |  | 19 | - |
FAIL |  | settings_parse_keyvalue |  | settings-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | settings_parse_is_valid_key |  | settings-parser.c |  | 2 | - |  | 50 | - |
FAIL |  | settings_parse_unalias |  | settings-parser.c |  | 1 | - |  | 7 | - |
FAIL |  | settings_parse_get_value |  | settings-parser.c |  | 1 | - |  | 4 | - |
FAIL |  | settings_parse_is_changed |  | settings-parser.c |  | 1 | - |  | 4 | - |
FAIL |  | settings_parse_line |  | settings-parser.c |  | 1 | - |  | 3 | - |
Pass |  | settings_parse_get_prev_info |  | settings-parser.c |  | 0 |  | 0 |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | settings_translate_lf |  | settings-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | settings_parse_stream |  | settings-parser.c |  | 1 | - |  | 2 | - |
Conditional Pass |  | settings_parse_stream_read |  | settings-parser.c |  | 1 | - |  | 2 | - |
FAIL |  | settings_parse_file |  | settings-parser.c |  | 1 | - |  | 5 | - |
Pass |  | environ_cmp |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | settings_parse_environ |  | settings-parser.c |  | 3 | - |  | 16 | - |
FAIL |  | settings_parse_exec |  | settings-parser.c |  | 3 | - |  | 7 | - |
Pass |  | settings_check_dynamic |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | settings_check |  | settings-parser.c |  | 3 | - |  | 7 | - |
Pass |  | settings_parser_check |  | settings-parser.c |  | 0 |  | 0 |
Pass |  | settings_parse_set_expanded |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | settings_parse_set_key_expandeded |  | settings-parser.c |  | 1 | - |  | 5 | - |
Pass |  | settings_parse_ et_keys_expandeded |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | settings_parse_var_skip |  | settings-parser.c |  | 1 | - |  | 7 | - |
FAIL |  | settings_var_expand_info |  | settings-parser.c |  | 3 | - |  | 5 | - |
FAIL |  | settings_var_expand |  | settings-parser.c |  | 1 | - |  | 9 | - |
FAIL |  | settings_vars_have_key |  | settings-parser.c |  | 3 | - |  | 6 | - |
FAIL |  | settings_set_parent |  | settings-parser.c |  | 1 | - |  | 8 | - |
FAIL |  | setting_copy |  | settings-parser.c |  | 3 | - |  | 5 | - |
FAIL |  | settings_dup |  | settings-parser.c |  | 3 | - |  | 18 | - |
FAIL |  | settings_changes_dup |  | settings-parser.c |  | 3 | - |  | 13 | - |
FAIL |  | info_update_real |  | settings-parser.c |  | 3 | - |  | 16 | - |
Pass |  | settings_parser_info_update |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | settings_parser_update_children_parent |  | settings-parser.c |  | 1 | - |  | 10 | - |
FAIL |  | settings_parser_dyn_update |  | settings-parser.c |  | 1 | - |  | 9 | - |
Pass |  | settings_find_dynamic |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | settings_link_get_new |  | settings-parser.c |  | 5 | - |  | 6 | - |
FAIL |  | settings_parser_dup |  | settings-parser.c |  | 5 | - |  | 16 | - |
FAIL |  | settings_changes_init |  | settings-parser.c |  | 3 | - |  | 11 | - |
FAIL |  | settings_copy_deflist |  | settings-parser.c |  | 3 | - |  | 12 | - |
FAIL |  | settings_copy_deflist_unique |  | settings-parser.c |  | 3 | - |  | 16 | - |
FAIL |  | settings_apply |  | settings-parser.c |  | 1 | - |  | 2 | - |
Pass |  | settings_parser_apply_changes |  | settings-parser.c |  | 0 |  | 0 |
FAIL |  | settings_section_escape |  | settings-parser.c |  | 1 | - |  | 2 | - |
Pass |  | get_bool |  | settings.c |  | 0 |  | 0 |
Pass |  | get_uint |  | settings.c |  | 0 |  | 0 |
FAIL |  | parse_setting_from_defs |  | settings.c |  | 1 | - |  | 3 | - |
Pass |  | fix_relative_path |  | settings.c |  | 0 |  | 0 |
FAIL |  | settings_add_include |  | settings.c |  | 1 | - |  | 2 | - |
Pass |  | settings_include |  | settings.c |  | 0 |  | 0 |
FAIL |  | settings_read_real |  | settings.c |  | 4 | - |  | 5 | - |
FAIL |  | settings_read |  | settings.c |  | 1 | - |  | 9 | - |

#### Global Information

#### Source Files in System

Name | Last Modification Date
--- | ---
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-settings\settings.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-settings\settings-parser.c | Fri Jun 25 08:22:16 2010

#### Global Basic Information

Number of procedures: | 90
Number of locally uncalled procedures: | 0
Maximum loop depth: | 4
Total Cyclomatic Complexity: | 403
Number of reformatted executable lines: | 3924
Number of lines of comments: | 1455

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

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
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 | settings.h: 16 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings.h: 16 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings.h: 20 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings.h: 20 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings.h: 24 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings.h: 24 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings.h: 47 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C

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

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

copy_unique_defaults (84 to 144 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 132 | Pointer not checked for null before use : new_link | CERT EXP08-C,EXP34-C
| 126 |  |
M | 131 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 124 |  |
M | 131 | Pointer not checked for null before use : prefix | CERT EXP08-C,EXP34-C
| 127 |  |
M | 123 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 103 |  |
M | 106 | Pointer not checked for null before use : carr | CERT EXP08-C,EXP34-C
| 105 |  |
M | 116 | Pointer not checked for null before use : new_set | CERT EXP08-C,EXP34-C
| 115 |  |
M | 120 | Pointer not checked for null before use : new_changes | CERT EXP08-C,EXP34-C
| 119 |  |
M | 132 | Pointer not checked for null before use : full_key | CERT EXP08-C,EXP34-C
| 131 |  |
M | 98 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 109 |  |
M | 89 | Declaration types do not match across a system. : arr | CERT ARR31-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 98 | settings-parser.c | 109 | count
settings-parser.c | 98 | settings-parser.c | 107 | count

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

setting_parser_copy_defaults (146 to 186 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 158 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 158 |  |
M | 164 | Pointer not checked for null before use : strp | CERT EXP08-C,EXP34-C
| 163 |  |
M | 172 | Pointer not checked for null before use : strp | CERT EXP08-C,EXP34-C
| 171 |  |

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

settings_parser_init_list (188 to 225 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 224 | Local structure returned in function result : ctx |
M | 200 | Pointer not checked for null before use : parser_pool | CERT EXP08-C,EXP34-C
| 199 |  |
M | 201 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 200 |  |

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

setting_define_find (279 to 289 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 286 | Local structure returned in function result : list |
M | 284 | Pointer not checked for null before use : list | CERT EXP08-C,EXP34-C
| 284 |  |

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

get_octal (322 to 339 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 327 | Procedure contains UR data flow anomalies. : p | CERT EXP33-C
| 332 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 327 | settings-parser.c | 332 | p

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

settings_get_time (341 to 388 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 348 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 348 |  |
M | 345 | Procedure contains UR data flow anomalies. : p | CERT EXP33-C
| 347 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 345 | settings-parser.c | 347 | p

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

settings_get_size (390 to 438 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 397 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 397 |  |
M | 425 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 424 |  |
M | 423 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 401 |  |
M | 428 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 426 |  |
M | 394 | Procedure contains UR data flow anomalies. : p | CERT EXP33-C
| 396 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 394 | settings-parser.c | 396 | p

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

setting_link_add (491 to 516 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

get_deflist (518 to 561 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 546 | Pointer not checked for null before use : new_link.info | CERT EXP08-C,EXP34-C
| 538 |  |
M | 557 | Pointer not checked for null before use : new_link.info | CERT EXP08-C,EXP34-C
| 538 |  |
M | 551 | Pointer not checked for null before use : list | CERT EXP08-C,EXP34-C
| 550 |  |
M | 546 | Pointer not checked for null before use : full_key | CERT EXP08-C,EXP34-C
| 545 |  |
M | 557 | Pointer not checked for null before use : full_key | CERT EXP08-C,EXP34-C
| 555 |  |

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

settings_parse (563 to 650 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 572 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 574 |  |
M | 592 | Pointer not checked for null before use : ptr | CERT EXP08-C,EXP34-C
| 585 |  |
M | 596 | Pointer not checked for null before use : ptr | CERT EXP08-C,EXP34-C
| 585 |  |
M | 632 | Pointer not checked for null before use : ptr | CERT EXP08-C,EXP34-C
| 585 |  |
M | 637 | Pointer not checked for null before use : ptr | CERT EXP08-C,EXP34-C
| 585 |  |
M | 601 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 600 |  |
M | 607 | Pointer not checked for null before use : error | CERT EXP08-C,EXP34-C
| 606 |  |
M | 637 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 570 | Procedure contains UR data flow anomalies. : error | CERT EXP33-C
| 607 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 570 | settings-parser.c | 607 | error

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

settings_parse_strlist (691 to 715 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 713 | Pointer not checked for null before use : vkey | CERT EXP08-C,EXP34-C
| 712 |  |
M | 712 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 700 |  |
M | 706 | Pointer not checked for null before use : items | CERT EXP08-C,EXP34-C
| 704 |  |
M | 714 | Pointer not checked for null before use : vvalue | CERT EXP08-C,EXP34-C
| 701 |  |
M | 698 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 705 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 698 | settings-parser.c | 705 | count

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

settings_parse_keyvalue (717 to 737 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_parse_is_valid_key (739 to 746 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 742 | Procedure contains UR data flow anomalies. : def | CERT EXP33-C
| 745 |  |
M | 743 | Procedure contains UR data flow anomalies. : link | CERT EXP33-C
| 745 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 742 | settings-parser.c | 745 | def
settings-parser.c | 743 | settings-parser.c | 745 | link

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

settings_parse_unalias (748 to 762 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 757 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 759 |  |
M | 758 | Pointer not checked for null before use : link | CERT EXP08-C,EXP34-C
| 754 |  |

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

settings_parse_get_value (764 to 778 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_parse_is_changed (780 to 794 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_parse_line (796 to 821 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_translate_lf (829 to 842 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_parse_stream (844 to 875 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_parse_file (914 to 932 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_parse_environ (939 to 975 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 966 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 964 |  |
M | 956 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 954 |  |
M | 957 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 954 |  |
M | 956 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 954 |  |
M | 957 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 954 |  |
M | 964 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 963 |  |
M | 965 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 964 |  |
M | 965 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 963 |  |
M | 945 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 960 |  |
M | 942 | Procedure contains UR data flow anomalies. : sorted_envs_arr.arr.buffer | CERT EXP33-C
| 958 |  |
M | 942 | Procedure contains UR data flow anomalies. : sorted_envs_arr.arr.element_size | CERT EXP33-C
| 958 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 945 | settings-parser.c | 960 | count
settings-parser.c | 942 | settings-parser.c | 958 | sorted_envs_arr.arr.buffer
settings-parser.c | 942 | settings-parser.c | 958 | sorted_envs_arr.arr.element_size

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

settings_parse_exec (977 to 1028 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1012 | Pointer not checked for null before use : argv | CERT EXP08-C,EXP34-C
| 1007 |  |
M | 1017 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 1016 |  |
M | 983 | Procedure contains UR data flow anomalies. : fd | CERT EXP33-C
| 985 |  |
M | 983 | Procedure contains UR data flow anomalies. : status | CERT EXP33-C
| 1020 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 983 | settings-parser.c | 985 | fd
settings-parser.c | 983 | settings-parser.c | 1020 | status

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

settings_check (1050 to 1079 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1063 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 1063 |  |
M | 1073 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 1071 |  |
M | 1068 | Pointer not checked for null before use : val | CERT EXP08-C,EXP34-C
| 1067 |  |
M | 1056 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1072 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1056 | settings-parser.c | 1072 | count

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

settings_parse_set_key_expandeded (1100 to 1121 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1109 | Pointer not checked for null before use : link | CERT EXP08-C,EXP34-C
| 1107 |  |
M | 1116 | Pointer not checked for null before use : val | CERT EXP08-C,EXP34-C
| 1114 |  |

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

settings_parse_var_skip (1130 to 1138 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_var_expand_info (1140 to 1199 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1149 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 1149 |  |
M | 1163 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 1150 |  |
M | 1184 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 1150 |  |
M | 1191 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 1189 |  |
M | 1147 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1190 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1147 | settings-parser.c | 1190 | count

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

settings_var_expand (1201 to 1211 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

settings_vars_have_key (1213 to 1273 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1222 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 1222 |  |
M | 1236 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 1223 |  |
M | 1255 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 1223 |  |
M | 1262 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 1260 |  |
M | 1220 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1261 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1220 | settings-parser.c | 1261 | count

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

settings_set_parent (1275 to 1285 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

setting_copy (1287 to 1348 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1340 | Pointer not checked for null before use : dup | CERT EXP08-C,EXP34-C
| 1339 |  |
M | 1339 | Pointer not checked for null before use : strings | CERT EXP08-C,EXP34-C
| 1335 |  |
M | 1330 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1337 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1330 | settings-parser.c | 1337 | count
settings-parser.c | 1330 | settings-parser.c | 1338 | count

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

settings_dup (1350 to 1388 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1364 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 1364 |  |
M | 1369 | Pointer not checked for null before use : src | CERT EXP08-C,EXP34-C
| 1365 |  |
M | 1366 | Pointer not checked for null before use : dest_set | CERT EXP08-C,EXP34-C
| 1363 |  |
M | 1370 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 1368 |  |
M | 1379 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 1376 |  |
M | 1381 | Pointer not checked for null before use : (dest.arr)->buffer | CERT EXP08-C,EXP34-C
| 1377 |  |
M | 1381 | Pointer not checked for null before use : (dest.arr)->element_size | CERT EXP08-C,EXP34-C
| 1377 |  |
M | 1368 | Pointer not checked for null before use : src | CERT EXP08-C,EXP34-C
| 1365 |  |
M | 1368 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 1366 |  |
M | 1381 | Pointer not checked for null before use : child_set | CERT EXP08-C,EXP34-C
| 1379 |  |
M | 1356 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1377 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1356 | settings-parser.c | 1377 | count

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

settings_changes_dup (1390 to 1443 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1403 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 1403 |  |
M | 1417 | Pointer not checked for null before use : src | CERT EXP08-C,EXP34-C
| 1404 |  |
M | 1421 | Pointer not checked for null before use : src | CERT EXP08-C,EXP34-C
| 1404 |  |
M | 1405 | Pointer not checked for null before use : dest_set | CERT EXP08-C,EXP34-C
| 1402 |  |
M | 1422 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 1405 |  |
M | 1434 | Pointer not checked for null before use : (dest.arr)->buffer | CERT EXP08-C,EXP34-C
| 1429 |  |
M | 1434 | Pointer not checked for null before use : (dest.arr)->element_size | CERT EXP08-C,EXP34-C
| 1429 |  |
M | 1434 | Pointer not checked for null before use : child_set | CERT EXP08-C,EXP34-C
| 1431 |  |
M | 1397 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1429 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1397 | settings-parser.c | 1429 | count

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

info_update_real (1445 to 1516 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1472 | Pointer not checked for null before use : new_define.list_info | CERT EXP08-C,EXP34-C
| 1470 |  |
M | 1472 | Pointer not checked for null before use : new_define.key | CERT EXP08-C,EXP34-C
| 1470 |  |
M | 1478 | Pointer not checked for null before use : new_defines | CERT EXP08-C,EXP34-C
| 1476 |  |
M | 1484 | Pointer not checked for null before use : parent | CERT EXP08-C,EXP34-C
| 1480 |  |
M | 1504 | Pointer not checked for null before use : new_parser.name | CERT EXP08-C,EXP34-C
| 1503 |  |
M | 1506 | Pointer not checked for null before use : new_parser.info | CERT EXP08-C,EXP34-C
| 1503 |  |
M | 1506 | Pointer not checked for null before use : new_parser.name | CERT EXP08-C,EXP34-C
| 1504 |  |
M | 1512 | Pointer not checked for null before use : parent | CERT EXP08-C,EXP34-C
| 1509 |  |
M | 1491 | Pointer not checked for null before use : parent_defaults | CERT EXP08-C,EXP34-C
| 1484 |  |
M | 1462 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 1459 |  |
M | 1472 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 1459 |  |
M | 1462 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 1459 |  |
M | 1472 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 1459 |  |
M | 1450 | Procedure contains UR data flow anomalies. : defines.arr.buffer | CERT EXP33-C
| 1459 |  |
M | 1450 | Procedure contains UR data flow anomalies. : defines.arr.element_size | CERT EXP33-C
| 1459 |  |
M | 1450 | Procedure contains UR data flow anomalies. : defines.v | CERT EXP33-C
| 1459 |  |
M | 1450 | Procedure contains UR data flow anomalies. : defines.v_modifiable | CERT EXP33-C
| 1459 |  |
M | 1451 | Procedure contains UR data flow anomalies. : dynamic_parsers.arr.buffer | CERT EXP33-C
| 1494 |  |
M | 1451 | Procedure contains UR data flow anomalies. : dynamic_parsers.arr.element_size | CERT EXP33-C
| 1494 |  |
M | 1451 | Procedure contains UR data flow anomalies. : dynamic_parsers.v | CERT EXP33-C
| 1494 |  |
M | 1451 | Procedure contains UR data flow anomalies. : dynamic_parsers.v_modifiable | CERT EXP33-C
| 1494 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1450 | settings-parser.c | 1459 | defines.arr.buffer
settings-parser.c | 1450 | settings-parser.c | 1459 | defines.arr.element_size
settings-parser.c | 1450 | settings-parser.c | 1459 | defines.v
settings-parser.c | 1450 | settings-parser.c | 1459 | defines.v_modifiable
settings-parser.c | 1451 | settings-parser.c | 1494 | dynamic_parsers.arr.buffer
settings-parser.c | 1451 | settings-parser.c | 1494 | dynamic_parsers.arr.element_size
settings-parser.c | 1451 | settings-parser.c | 1494 | dynamic_parsers.v
settings-parser.c | 1451 | settings-parser.c | 1494 | dynamic_parsers.v_modifiable

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

settings_parser_update_children_parent (1527 to 1551 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1538 | Pointer not checked for null before use : new_defs | CERT EXP08-C,EXP34-C
| 1537 |  |
M | 1539 | Pointer not checked for null before use : new_defs | CERT EXP08-C,EXP34-C
| 1538 |  |
M | 1547 | Pointer not checked for null before use : new_info | CERT EXP08-C,EXP34-C
| 1546 |  |
M | 1548 | Pointer not checked for null before use : parent | CERT EXP08-C,EXP34-C
| 1539 |  |

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

settings_parser_dyn_update (1553 to 1595 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1568 | Pointer not checked for null before use : new_parent | CERT EXP08-C,EXP34-C
| 1567 |  |
M | 1568 | Pointer not checked for null before use : old_parent | CERT EXP08-C,EXP34-C
| 1566 |  |
M | 1589 | Pointer not checked for null before use : new_info | CERT EXP08-C,EXP34-C
| 1588 |  |
M | 1591 | Pointer not checked for null before use : new_dyn_parsers | CERT EXP08-C,EXP34-C
| 1586 |  |
M | 1580 | Pointer not checked for null before use : new_roots | CERT EXP08-C,EXP34-C
| 1573 |  |
M | 1576 | Pointer not checked for null before use : new_parent | CERT EXP08-C,EXP34-C
| 1569 |  |
M | 1594 | Pointer not checked for null before use : new_dyn_parsers | CERT EXP08-C,EXP34-C
| 1584 |  |

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

settings_link_get_new (1614 to 1656 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1655 | Local structure returned in function result : new_link |
M | 1648 | Pointer not checked for null before use : new_sets | CERT EXP08-C,EXP34-C
| 1644 |  |
M | 1632 | Pointer not checked for null before use : new_link | CERT EXP08-C,EXP34-C
| 1631 |  |
M | 1621 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1645 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1621 | settings-parser.c | 1645 | count

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

settings_parser_dup (1658 to 1718 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1717 | Local structure returned in function result : new_ctx |
M | 1716 | Pointer not checked for null before use : links | CERT EXP08-C,EXP34-C
| 1681 |  |
M | 1700 | Pointer not checked for null before use : links | CERT EXP08-C,EXP34-C
| 1681 |  |
M | 1672 | Pointer not checked for null before use : parser_pool | CERT EXP08-C,EXP34-C
| 1671 |  |
M | 1673 | Pointer not checked for null before use : new_ctx | CERT EXP08-C,EXP34-C
| 1672 |  |
M | 1712 | Pointer not checked for null before use : new_link | CERT EXP08-C,EXP34-C
| 1710 |  |
M | 1681 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 504) |  |
M | 1666 | Procedure contains UR data flow anomalies. : key | CERT EXP33-C
| 1709 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1666 | settings-parser.c | 1709 | key

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

settings_changes_init (1720 to 1753 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1734 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 1734 |  |
M | 1743 | Pointer not checked for null before use : dest_arr | CERT EXP08-C,EXP34-C
| 1739 |  |
M | 1739 | Pointer not checked for null before use : dest_set | CERT EXP08-C,EXP34-C
| 1733 |  |
M | 1746 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 1742 |  |
M | 1741 | Pointer not checked for null before use : src_arr | CERT EXP08-C,EXP34-C
| 1738 |  |
M | 1748 | Pointer not checked for null before use : set | CERT EXP08-C,EXP34-C
| 1746 |  |
M | 1728 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1744 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1728 | settings-parser.c | 1744 | count

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

settings_copy_deflist (1755 to 1790 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1772 | Pointer not checked for null before use : dest_arr | CERT EXP08-C,EXP34-C
| 1766 |  |
M | 1775 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 1771 |  |
M | 1786 | Pointer not checked for null before use : children | CERT EXP08-C,EXP34-C
| 1771 |  |
M | 1768 | Pointer not checked for null before use : src_arr | CERT EXP08-C,EXP34-C
| 1765 |  |
M | 1776 | Pointer not checked for null before use : child_set | CERT EXP08-C,EXP34-C
| 1775 |  |
M | 1783 | Pointer not checked for null before use : dest_arr | CERT EXP08-C,EXP34-C
| 1782 |  |
M | 1788 | Pointer not checked for null before use : child_set | CERT EXP08-C,EXP34-C
| 1786 |  |
M | 1763 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 1773 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1763 | settings-parser.c | 1773 | count
settings-parser.c | 1763 | settings-parser.c | 1774 | count

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

settings_copy_deflist_unique (1792 to 1866 settings-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1848 | Pointer not checked for null before use : child_dest_link.info | CERT EXP08-C,EXP34-C
| 1821 |  |
M | 1824 | Pointer not checked for null before use : src_carr | CERT EXP08-C,EXP34-C
| 1810 |  |
M | 1828 | Pointer not checked for null before use : dest_carr | CERT EXP08-C,EXP34-C
| 1812 |  |
M | 1826 | Pointer not checked for null before use : dest_arr | CERT EXP08-C,EXP34-C
| 1811 |  |
M | 1831 | Pointer not checked for null before use : src_children | CERT EXP08-C,EXP34-C
| 1823 |  |
M | 1859 | Pointer not checked for null before use : src_cchildren | CERT EXP08-C,EXP34-C
| 1824 |  |
M | 1836 | Pointer not checked for null before use : dest_children | CERT EXP08-C,EXP34-C
| 1832 |  |
M | 1847 | Pointer not checked for null before use : dest_cchildren | CERT EXP08-C,EXP34-C
| 1833 |  |
M | 1838 | Pointer not checked for null before use : src_namep | CERT EXP08-C,EXP34-C
| 1831 |  |
M | 1814 | Pointer not checked for null before use : src_arr | CERT EXP08-C,EXP34-C
| 1809 |  |
M | 1838 | Pointer not checked for null before use : dest_namep | CERT EXP08-C,EXP34-C
| 1836 |  |
M | 1848 | Pointer not checked for null before use : child_dest_link.change_struct | CERT EXP08-C,EXP34-C
| 1847 |  |
M | 1848 | Pointer not checked for null before use : child_dest_link.set_struct | CERT EXP08-C,EXP34-C
| 1846 |  |
M | 1848 | Pointer not checked for null before use : child_src_link.change_struct | CERT EXP08-C,EXP34-C
| 1845 |  |
M | 1848 | Pointer not checked for null before use : child_src_link.set_struct | CERT EXP08-C,EXP34-C
| 1844 |  |
M | 1855 | Pointer not checked for null before use : child_set | CERT EXP08-C,EXP34-C
| 1853 |  |
M | 1862 | Pointer not checked for null before use : child_set | CERT EXP08-C,EXP34-C
| 1859 |  |
M | 1804 | Procedure contains UR data flow anomalies. : ccount | CERT EXP33-C
| 1825 |  |
M | 1804 | Procedure contains UR data flow anomalies. : dest_count | CERT EXP33-C
| 1834 |  |
M | 1804 | Procedure contains UR data flow anomalies. : src_count | CERT EXP33-C
| 1825 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings-parser.c | 1804 | settings-parser.c | 1825 | ccount
settings-parser.c | 1804 | settings-parser.c | 1834 | dest_count
settings-parser.c | 1804 | settings-parser.c | 1825 | src_count

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

settings_apply (1868 to 1919 settings-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 1877 | Pointer not checked for null before use : def | CERT EXP08-C,EXP34-C
| 1877 |  |
M | 1906 | Pointer not checked for null before use : src | CERT EXP08-C,EXP34-C
| 1903 |  |
M | 1906 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 1904 |  |

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

settings_section_escape (1937 to 1970 settings-parser.c) - FAIL

#### Standards Violation Summary

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

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

parse_setting_from_defs (53 to 78 settings.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 53 | Procedure not called in code analysed : parse_setting_from_defs |

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

settings_add_include (95 to 126 settings.c) - FAIL

#### Standards Violation Summary

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

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

settings_read_real (170 to 387 settings.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 230 | Array Bound exceeded. | CERT ARR30-C
M | 230 | Array Bound exceeded. | CERT ARR30-C
M | 296 | Array Bound exceeded. | CERT ARR30-C
M | 289 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 288 |  |
M | 298 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 296 |  |
M | 326 | Pointer not checked for null before use : section | CERT EXP08-C,EXP34-C
| 325 |  |
M | 206 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 382 |  |
M | 358 | Pointer not checked for null before use : errormsg | CERT EXP08-C,EXP34-C
| 202 |  |
M | 317 | Pointer not checked for null before use : name | CERT EXP08-C,EXP34-C
| 301 |  |
M | 340 | Pointer not checked for null before use : last_section_path | CERT EXP08-C,EXP34-C
| 347 |  |
M | 212 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 213 |  |
M | 264 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 258 |  |
M | 265 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 266 |  |
M | 269 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 269 |  |
M | 282 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 282 |  |
M | 302 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 303 |  |
M | 307 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 308 |  |
M | 293 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 289 |  |
M | 272 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 264 |  |
M | 223 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 225 |  |
M | 202 | Procedure contains UR data flow anomalies. : errormsg | CERT EXP33-C
| 177 |  |
M | 191 | Procedure contains UR data flow anomalies. : next_section | CERT EXP33-C
| 177 |  |
M | 321 | Procedure contains UR data flow anomalies. : next_section | CERT EXP33-C
| 177 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
settings.c | 202 | settings.c | 386 | errormsg
settings.c | 202 | settings.c | 358 | errormsg
settings.c | 191 | settings.c | 316 | next_section
settings.c | 321 | settings.c | 316 | next_section

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

settings_read (390 to 401 settings.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 390 | Procedure not called in code analysed : settings_read |

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

### End of Code Review Report

###

### Copyright © 2010 Liverpool Data Research Associates