LDRA Testbed Code Review Report

LDRA Testbed ® Code Review Report

# System : Dovecot-src-dict

Overall Result: FAIL

Report Production | Report Configuration | Analysis phases
--- | --- | ---
C/C++ LDRA Testbed Version: 8.3.0 Config. File: C:\Testbed\CCPP_830_Release\C\sate_creport.dat Produced On: Mon Aug 09 2010 at 17:02:17 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
--- | --- | --- | ---
1 | 47 S | Array Bound exceeded. | CERT ARR30-C
93 | 77 S | Macro replacement list needs parentheses. | CERT PRE02-C
67 | 78 S | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
1 | 483 S | free parameter is not heap item. | CERT MEM34-C
14 | 484 S | Attempt to use already freed object. | CERT MEM31-C
3 | 577 S | Sizeof argument is a pointer. | CERT EXP01-C
31 | 5 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
188 | 45 D | Pointer not checked for null before use | CERT EXP08-C,EXP34-C
2 | 50 D | Memory not freed after last reference. | CERT MEM00-C
5 | 51 D | Attempt to read from freed memory. | CERT MEM30-C
8 | 57 D | Global not initialised at declaration. | CERT EXP33-C
51 | 69 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
6 | 77 D | Local structure returned in function result |
2 | 86 D | User input not checked before use. | CERT FIO30-C

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

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

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

### OVERALL RESULT: FAIL

Out of 153 program components, 58 (37.91 %) pass ( of which 0 conditionally pass ) and 95 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 |
FAIL |  | dict_client_escape |  | dict-client.c |  | 1 | - |  | 2 | - |
FAIL |  | dict_client_unescape |  | dict-client.c |  | 1 | - |  | 1 | - |
FAIL |  | client_dict_send_query |  | dict-client.c |  | 1 | - |  | 5 | - |
FAIL |  | client_dict_transaction_send_begin |  | dict-client.c |  | 1 | - |  | 3 | - |
Pass |  | client_dict_sen _transaction_query |  | dict-client.c |  | 0 |  | 0 |
FAIL |  | client_dict_transaction_find |  | dict-client.c |  | 1 | - |  | 5 | - |
FAIL |  | client_dict_finish_transaction |  | dict-client.c |  | 2 | - |  | 6 | - |
Pass |  | client_dict_read_timeout |  | dict-client.c |  | 0 |  | 0 |
FAIL |  | client_dict_read_one_line |  | dict-client.c |  | 1 | - |  | 2 | - |
Pass |  | client_dict_is_finished |  | dict-client.c |  | 0 |  | 0 |
Pass |  | client_dict_timeout |  | dict-client.c |  | 0 |  | 0 |
Pass |  | client_dict_add_timeout |  | dict-client.c |  | 0 |  | 0 |
FAIL |  | client_dict_read_line |  | dict-client.c |  | 1 | - |  | 7 | - |
FAIL |  | client_dict_connect |  | dict-client.c |  | 1 | - |  | 4 | - |
Pass |  | client_dict_disconnect |  | dict-client.c |  | 0 |  | 0 |
FAIL |  | client_dict_init |  | dict-client.c |  | 1 | - |  | 6 | - |
Pass |  | client_dict_deinit |  | dict-client.c |  | 0 |  | 0 |
Pass |  | client_dict_wait |  | dict-client.c |  | 0 |  | 0 |
FAIL |  | client_dict_lookup |  | dict-client.c |  | 1 | - |  | 5 | - |
FAIL |  | client_dict_iterate_init |  | dict-client.c |  | 1 | - |  | 4 | - |
FAIL |  | client_dict_iterate |  | dict-client.c |  | 2 | - |  | 4 | - |
Pass |  | client_dict_iterate_deinit |  | dict-client.c |  | 0 |  | 0 |
FAIL |  | client_dict_transaction_init |  | dict-client.c |  | 1 | - |  | 11 | - |
FAIL |  | dict_async_input |  | dict-client.c |  | 1 | - |  | 6 | - |
FAIL |  | client_dict_transaction_commit |  | dict-client.c |  | 2 | - |  | 5 | - |
FAIL |  | client_dict_transaction_rollback |  | dict-client.c |  | 2 | - |  | 9 | - |
FAIL |  | client_dict_set |  | dict-client.c |  | 1 | - |  | 13 | - |
FAIL |  | client_dict_unset |  | dict-client.c |  | 1 | - |  | 15 | - |
FAIL |  | client_dict_atomic_inc |  | dict-client.c |  | 1 | - |  | 15 | - |
Pass |  | buffer_get_data |  | buffer.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | buffer_get_used_size |  | buffer.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_create_from_buffer_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
FAIL |  | array_create_i |  | array.h analysed in dict-commands.c |  | 1 | - |  | 17 | - |
Pass |  | array_free_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_is_created_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_get_pool_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_clear_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_append_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_append_array_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_insert_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_delete_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_get_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_idx_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_get_modifiable_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_append_space_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_copy |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
Pass |  | array_count_i |  | array.h analysed in dict-commands.c |  | 0 |  | 0 |
FAIL |  | cmd_lookup |  | dict-commands.c |  | 2 | - |  | 12 | - |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | cmd_iterate_flush |  | dict-commands.c |  | 2 | - |  | 9 | - |
FAIL |  | cmd_iterate |  | dict-commands.c |  | 2 | - |  | 10 | - |
FAIL |  | dict_connection_transaction_lookup |  | dict-commands.c |  | 1 | - |  | 3 | - |
FAIL |  | dict_connection_transaction_array_remove |  | dict-commands.c |  | 1 | - |  | 9 | - |
FAIL |  | cmd_begin |  | dict-commands.c |  | 2 | - |  | 8 | - |
FAIL |  | dict_connection_transaction_lookup_parse |  | dict-commands.c |  | 1 | - |  | 8 | - |
Pass |  | cmd_commit |  | dict-commands.c |  | 0 |  | 0 |
FAIL |  | cmd_commit_async_callback |  | dict-commands.c |  | 1 | - |  | 5 | - |
Pass |  | cmd_commit_async |  | dict-commands.c |  | 0 |  | 0 |
Pass |  | cmd_rollback |  | dict-commands.c |  | 0 |  | 0 |
FAIL |  | cmd_set |  | dict-commands.c |  | 1 | - |  | 4 | - |
FAIL |  | cmd_unset |  | dict-commands.c |  | 1 | - |  | 4 | - |
FAIL |  | cmd_atomic_inc |  | dict-commands.c |  | 2 | - |  | 12 | - |
Pass |  | dict_command_find |  | dict-commands.c |  | 0 |  | 0 |
Pass |  | dict_command_input |  | dict-commands.c |  | 0 |  | 0 |
FAIL |  | dict_connection_parse_handshake |  | dict-connection.c |  | 1 | - |  | 6 | - |
FAIL |  | dict_connection_dict_init |  | dict-connection.c |  | 1 | - |  | 7 | - |
FAIL |  | dict_connection_input |  | dict-connection.c |  | 1 | - |  | 4 | - |
FAIL |  | dict_connection_create |  | dict-connection.c |  | 1 | - |  | 14 | - |
FAIL |  | dict_connection_destroy |  | dict-connection.c |  | 2 | - |  | 8 | - |
FAIL |  | dict_connections_destroy_all |  | dict-connection.c |  | 2 | - |  | 27 | - |
FAIL |  | file_dict_init |  | dict-file.c |  | 1 | - |  | 20 | - |
FAIL |  | file_dict_deinit |  | dict-file.c |  | 2 | - |  | 38 | - |
Pass |  | file_dict_need_refresh |  | dict-file.c |  | 0 |  | 0 |
FAIL |  | file_dict_refresh |  | dict-file.c |  | 2 | - |  | 6 | - |
FAIL |  | file_dict_lookup |  | dict-file.c |  | 1 | - |  | 5 | - |
FAIL |  | file_dict_iterate_init |  | dict-file.c |  | 1 | - |  | 7 | - |
Pass |  | file_dict_iterate_find_path |  | dict-file.c |  | 0 |  | 0 |
FAIL |  | file_dict_iterate |  | dict-file.c |  | 1 | - |  | 9 | - |
Pass |  | file_dict_iterate_deinit |  | dict-file.c |  | 0 |  | 0 |
FAIL |  | file_dict_transaction_init |  | dict-file.c |  | 1 | - |  | 18 | - |
FAIL |  | file_dict_apply_changes |  | dict-file.c |  | 2 | - |  | 20 | - |
Pass |  | fd_copy_stat_permissions |  | dict-file.c |  | 0 |  | 0 |
FAIL |  | fd_copy_permissions |  | dict-file.c |  | 1 | - |  | 7 | - |
FAIL |  | fd_copy_parent_dir_permissions |  | dict-file.c |  | 1 | - |  | 7 | - |
FAIL |  | file_dict_write_changes |  | dict-file.c |  | 2 | - |  | 20 | - |
Pass |  | file_dict_transaction_commit |  | dict-file.c |  | 0 |  | 0 |
Pass |  | file_dict_transaction_rollback |  | dict-file.c |  | 0 |  | 0 |
FAIL |  | file_dict_set |  | dict-file.c |  | 1 | - |  | 17 | - |
FAIL |  | file_dict_unset |  | dict-file.c |  | 1 | - |  | 20 | - |
FAIL |  | file_dict_atomic_inc |  | dict-file.c |  | 1 | - |  | 17 | - |
FAIL |  | pattern_read_name |  | dict-sql-settings.c |  | 1 | - |  | 6 | - |
FAIL |  | dict_sql_fields_map |  | dict-sql-settings.c |  | 2 | - |  | 6 | - |
FAIL |  | dict_sql_map_finish |  | dict-sql-settings.c |  | 1 | - |  | 2 | - |
FAIL |  | parse_setting |  | dict-sql-settings.c |  | 1 | - |  | 3 | - |
Pass |  | parse_section |  | dict-sql-settings.c |  | 0 |  | 0 |
FAIL |  | dict_sql_settings_read |  | dict-sql-settings.c |  | 1 | - |  | 7 | - |
Pass |  | module_get_context_id |  | module-context.h analysed in dict-sql.c |  | 0 |  | 0 |
FAIL |  | sql_dict_init |  | dict-sql.c |  | 1 | - |  | 14 | - |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | sql_dict_deinit |  | dict-sql.c |  | 1 | - |  | 20 | - |
FAIL |  | dict_sql_map_match |  | dict-sql.c |  | 1 | - |  | 5 | - |
FAIL |  | sql_dict_find_map |  | dict-sql.c |  | 1 | - |  | 3 | - |
FAIL |  | sql_dict_where_build |  | dict-sql.c |  | 2 | - |  | 4 | - |
FAIL |  | sql_dict_lookup |  | dict-sql.c |  | 2 | - |  | 16 | - |
FAIL |  | sql_dict_iterate_find_next_map |  | dict-sql.c |  | 2 | - |  | 9 | - |
FAIL |  | sql_dict_iterate_next_query |  | dict-sql.c |  | 2 | - |  | 6 | - |
FAIL |  | sql_dict_iterate_init |  | dict-sql.c |  | 1 | - |  | 7 | - |
FAIL |  | sql_dict_iterate |  | dict-sql.c |  | 1 | - |  | 2 | - |
FAIL |  | sql_dict_iterate_deinit |  | dict-sql.c |  | 1 | - |  | 6 | - |
FAIL |  | sql_dict_transaction_init |  | dict-sql.c |  | 1 | - |  | 43 | - |
FAIL |  | sql_dict_transaction_commit |  | dict-sql.c |  | 2 | - |  | 6 | - |
FAIL |  | sql_dict_transaction_rollback |  | dict-sql.c |  | 1 | - |  | 8 | - |
FAIL |  | sql_dict_set_query |  | dict-sql.c |  | 2 | - |  | 5 | - |
FAIL |  | sql_dict_update_query |  | dict-sql.c |  | 1 | - |  | 4 | - |
FAIL |  | sql_dict_set |  | dict-sql.c |  | 2 | - |  | 38 | - |
FAIL |  | sql_dict_unset |  | dict-sql.c |  | 2 | - |  | 19 | - |
FAIL |  | sql_dict_next_inc_row |  | dict-sql.c |  | 1 | - |  | 7 | - |
FAIL |  | sql_dict_atomic_inc_real |  | dict-sql.c |  | 2 | - |  | 38 | - |
FAIL |  | sql_dict_prev_inc_flush |  | dict-sql.c |  | 1 | - |  | 10 | - |
FAIL |  | sql_dict_maps_are_mergeable |  | dict-sql.c |  | 2 | - |  | 5 | - |
FAIL |  | sql_dict_atomic_inc |  | dict-sql.c |  | 2 | - |  | 19 | - |
FAIL |  | dict_sql_register |  | dict-sql.c |  | 1 | - |  | 26 | - |
FAIL |  | dict_sql_unregister |  | dict-sql.c |  | 1 | - |  | 6 | - |
FAIL |  | dict_driver_lookup |  | dict.c |  | 1 | - |  | 14 | - |
Pass |  | dict_driver_register |  | dict.c |  | 0 |  | 0 |
FAIL |  | dict_driver_unregister |  | dict.c |  | 1 | - |  | 5 | - |
FAIL |  | dict_drivers_register_builtin |  | dict.c |  | 1 | - |  | 25 | - |
FAIL |  | dict_drivers_unregister_builtin |  | dict.c |  | 1 | - |  | 25 | - |
FAIL |  | dict_init |  | dict.c |  | 1 | - |  | 4 | - |
Pass |  | dict_deinit |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_wait |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_key_prefix_is_valid |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_lookup |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_iterate_init |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_iterate_init_multiple |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_iterate |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_iterate_deinit |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_transaction_begin |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_transaction_commit |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_transaction_commit_async |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_transaction_rollback |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_set |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_unset |  | dict.c |  | 0 |  | 0 |
Pass |  | dict_atomic_inc |  | dict.c |  | 0 |  | 0 |
FAIL |  | dict_escape_string |  | dict.c |  | 1 | - |  | 2 | - |
FAIL |  | dict_unescape_string |  | dict.c |  | 1 | - |  | 3 | - |
FAIL |  | dict_die |  | main.c |  | 1 | - |  | 50 | - |
FAIL |  | client_connected |  | main.c |  | 1 | - |  | 25 | - |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
Pass |  | main_preinit |  | main.c |  | 0 |  | 0 |
FAIL |  | main_init |  | main.c |  | 1 | - |  | 21 | - |
Pass |  | main_deinit |  | main.c |  | 0 |  | 0 |
FAIL |  | main |  | main.c |  | 2 | - |  | 13 | - |
FAIL |  | test_dict_escape |  | test-dict.c |  | 1 | - |  | 4 | - |
Pass |  | main |  | test-dict.c |  | 0 |  | 0 |

#### 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-dict\test-dict.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-dict\dict.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-dict\dict-sql.c | Tue May 04 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-dict\dict-sql-settings.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-dict\dict-file.c | Fri Apr 16 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-dict\dict-db.c | Tue Apr 06 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-dict\dict-client.c | Fri Jun 04 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\dict\main.c | Thu May 27 19:00:08 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\dict\dict-settings.c | Fri Jun 25 08:22:16 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\dict\dict-connection.c | Fri Apr 16 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\dict\dict-commands.c | Tue Apr 06 19:00:04 2010

#### Global Basic Information

Number of procedures: | 152
Number of locally uncalled procedures: | 0
Maximum loop depth: | 2
Total Cyclomatic Complexity: | 474
Number of reformatted executable lines: | 5412
Number of lines of comments: | 7705

## 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 | llist.h: 5 | Macro replacement list needs parentheses. | CERT PRE02-C
M | llist.h: 12 | Macro replacement list needs parentheses. | CERT PRE02-C

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | llist.h: 25 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | llist.h: 25 | Macro replacement list needs parentheses. | CERT PRE02-C
M | llist.h: 32 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | llist.h: 32 | Macro replacement list needs parentheses. | CERT PRE02-C
M | llist.h: 39 | Macro replacement list needs parentheses. | CERT PRE02-C
M | 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 | array.h: 35 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 35 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 37 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 37 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 39 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 39 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 53 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 58 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 58 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 62 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 62 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 90 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 90 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 102 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 102 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 110 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 118 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 126 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 134 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 143 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 143 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 153 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 164 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 164 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 174 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 174 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 183 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 183 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 192 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 192 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 201 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 201 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 206 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 206 | Macro replacement list needs parentheses. | CERT PRE02-C
M | array.h: 211 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | array.h: 211 | Macro replacement list needs parentheses. | CERT PRE02-C

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
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 | dict-connection.c: 18 | Global not initialised at declaration. : dict_connections | CERT EXP33-C
M | settings-parser.h: 46 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 46 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 50 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 50 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 54 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 54 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 58 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 58 | Macro replacement list needs parentheses. | CERT PRE02-C
M | settings-parser.h: 62 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | settings-parser.h: 62 | Macro replacement list needs parentheses. | CERT PRE02-C
M | dict-settings.c: 16 | Sizeof argument is a pointer. | CERT EXP01-C
M | dict-settings.c: 48 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | dict-settings.c: 48 | Macro replacement list needs parentheses. | CERT PRE02-C
M | dict-settings.c: 76 | Global not initialised at declaration. : dict_settings | CERT EXP33-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
M | dict-sql-settings.c: 30 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | dict-sql-settings.c: 30 | Macro replacement list needs parentheses. | CERT PRE02-C
M | sql-api.h: 27 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | sql-api.h: 27 | Macro replacement list needs parentheses. | CERT PRE02-C
M | sql-api.h: 32 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | sql-api.h: 32 | Macro replacement list needs parentheses. | CERT PRE02-C
M | sql-api.h: 34 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | sql-api.h: 34 | Macro replacement list needs parentheses. | CERT PRE02-C
M | sql-api.h: 36 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | sql-api.h: 36 | Macro replacement list needs parentheses. | CERT PRE02-C
M | sql-api.h: 38 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | sql-api.h: 38 | Macro replacement list needs parentheses. | CERT PRE02-C
M | sql-api.h: 82 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | sql-api.h: 135 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | module-context.h: 45 | Macro replacement list needs parentheses. | CERT PRE02-C
M | module-context.h: 48 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | module-context.h: 62 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | module-context.h: 62 | Macro replacement list needs parentheses. | CERT PRE02-C
M | module-context.h: 66 | Macro replacement list needs parentheses. | CERT PRE02-C
M | module-context.h: 70 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | module-context.h: 70 | Macro replacement list needs parentheses. | CERT PRE02-C
M | module-context.h: 89 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | module-context.h: 89 | Macro replacement list needs parentheses. | CERT PRE02-C
M | module-context.h: 98 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | module-context.h: 98 | Macro replacement list needs parentheses. | CERT PRE02-C
M | module-context.h: 100 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | module-context.h: 100 | Macro replacement list needs parentheses. | CERT PRE02-C
M | module-context.h: 103 | Macro replacement list needs parentheses. | CERT PRE02-C
M | dict-sql.c: 70 | Global not initialised at declaration. : dict_sql_db_cache | CERT EXP33-C
M | dict-sql.c: 895 | Global not initialised at declaration. : dict_sql_drivers | CERT EXP33-C
M | dict.c: 9 | Global not initialised at declaration. : dict_drivers | CERT EXP33-C
M | test-common.h: 11 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | test-common.h: 11 | Macro replacement list needs parentheses. | CERT PRE02-C
M | test-dict.c: 7 | Global not initialised at declaration. : dict_driver_client | CERT EXP33-C
M | test-dict.c: 8 | Global not initialised at declaration. : dict_driver_file | CERT EXP33-C
M | main.c: 16 | Global not initialised at declaration. : modules | CERT EXP33-C

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

dict_client_escape (79 to 117 dict-client.c) - FAIL

#### Standards Violation Summary

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

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

dict_client_unescape (119 to 155 dict-client.c) - FAIL

#### Standards Violation Summary

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

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

client_dict_send_query (157 to 185 dict-client.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 174 | Pointer not checked for null before use : dict.input | CERT EXP08-C,EXP34-C
| 161 |  |
M | 174 | Pointer not checked for null before use : dict.connect_counter | CERT EXP08-C,EXP34-C
| 161 |  |
M | 175 | Pointer not checked for null before use : dict.connect_counter | CERT EXP08-C,EXP34-C
| 174 |  |

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

client_dict_transaction_send_begin (187 to 207 dict-client.c) - FAIL

#### Standards Violation Summary

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

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

client_dict_transaction_find (240 to 250 dict-client.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 247 | Local structure returned in function result : ctx |

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

client_dict_finish_transaction (252 to 272 dict-client.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 272 | Memory not freed after last reference. : ctx | CERT MEM00-C
M | 266 | Procedure contains UR data flow anomalies. : ctx.next | CERT EXP33-C
M | 266 | Procedure contains UR data flow anomalies. : ctx.prev | CERT EXP33-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-client.c | 266 | dict-client.c | 267 | ctx.next
dict-client.c | 266 | dict-client.c | 267 | ctx.prev

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

client_dict_read_one_line (305 to 360 dict-client.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 307 | Procedure contains UR data flow anomalies. : id | CERT EXP33-C
| 351 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-client.c | 307 | dict-client.c | 351 | id

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

client_dict_read_line (386 to 395 dict-client.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 393 | Pointer not checked for null before use : dict.async_commits | CERT EXP08-C,EXP34-C
| 390 |  |

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

client_dict_connect (397 to 436 dict-client.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 430 | Pointer not checked for null before use : dict.connect_counter | CERT EXP08-C,EXP34-C
| 428 |  |
M | 428 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 423 |  |

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

client_dict_init (459 to 493 dict-client.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 476 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 475 |  |
M | 477 | Pointer not checked for null before use : dict | CERT EXP08-C,EXP34-C
| 476 |  |

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

client_dict_lookup (521 to 550 dict-client.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 539 | Pointer not checked for null before use : (dict)->input | CERT EXP08-C,EXP34-C
| 533 |  |
M | 539 | Pointer not checked for null before use : dict.async_commits | CERT EXP08-C,EXP34-C
| 533 |  |
M | 533 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 531 |  |

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

client_dict_iterate_init (552 to 581 dict-client.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 564 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 563 |  |
M | 571 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 568 |  |

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

client_dict_iterate (583 to 631 dict-client.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 626 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 611 |  |
M | 617 | Procedure contains UR data flow anomalies. : value | CERT EXP33-C
| 589 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-client.c | 617 | dict-client.c | 620 | value
dict-client.c | 617 | dict-client.c | 626 | value

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

client_dict_transaction_init (648 to 660 dict-client.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 655 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 654 |  |
M | 654 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1102 (Module 385) |  |

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

dict_async_input (662 to 677 dict-client.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 665 | Procedure contains UR data flow anomalies. : size | CERT EXP33-C
| 672 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-client.c | 665 | dict-client.c | 672 | size

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

client_dict_transaction_commit (679 to 727 dict-client.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 727 | Memory not freed after last reference. : ctx | CERT MEM00-C
M | 724 | Pointer not checked for null before use : dict.to_idle | CERT EXP08-C,EXP34-C
| 708 |  |
M | 697 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 693 |  |
M | 722 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 708 |  |
M | 721 | Procedure contains UR data flow anomalies. : ctx.next | CERT EXP33-C
M | 721 | Procedure contains UR data flow anomalies. : ctx.prev | CERT EXP33-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-client.c | 721 | dict-client.c | 722 | ctx.next
dict-client.c | 721 | dict-client.c | 722 | ctx.prev

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

client_dict_transaction_rollback (729 to 748 dict-client.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 741 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 739 |  |
M | 744 | Procedure contains UR data flow anomalies. : ctx.next | CERT EXP33-C
M | 744 | Procedure contains UR data flow anomalies. : ctx.prev | CERT EXP33-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-client.c | 744 | dict-client.c | 745 | ctx.next
dict-client.c | 744 | dict-client.c | 745 | ctx.prev

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

client_dict_set (750 to 765 dict-client.c) - FAIL

#### Standards Violation Summary

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

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

client_dict_unset (767 to 781 dict-client.c) - FAIL

#### Standards Violation Summary

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

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

client_dict_atomic_inc (783 to 796 dict-client.c) - FAIL

#### Standards Violation Summary

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

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

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

cmd_lookup (21 to 45 dict-commands.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 37 | Pointer not checked for null before use : reply | CERT EXP08-C,EXP34-C
| 35 |  |
M | 42 | Pointer not checked for null before use : reply | CERT EXP08-C,EXP34-C
| 39 |  |
M | 24 | Procedure contains UR data flow anomalies. : value | CERT EXP33-C
| 33 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-commands.c | 24 | dict-commands.c | 33 | value

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

cmd_iterate_flush (47 to 81 dict-commands.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 55 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 52 |  |
M | 50 | Procedure contains UR data flow anomalies. : key | CERT EXP33-C
| 54 |  |
M | 50 | Procedure contains UR data flow anomalies. : value | CERT EXP33-C
| 54 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-commands.c | 50 | dict-commands.c | 54 | key
dict-commands.c | 50 | dict-commands.c | 54 | value

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

cmd_iterate (83 to 106 dict-commands.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 94 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 93 |  |
M | 86 | Procedure contains UR data flow anomalies. : flags | CERT EXP33-C
| 95 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-commands.c | 86 | dict-commands.c | 95 | flags

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

dict_connection_transaction_lookup (108 to 122 dict-commands.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 119 | Local structure returned in function result : transaction |

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

dict_connection_transaction_array_remove (124 to 138 dict-commands.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 129 | Procedure contains UR data flow anomalies. : count | CERT EXP33-C
| 132 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-commands.c | 129 | dict-commands.c | 132 | count

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

cmd_begin (140 to 163 dict-commands.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 159 | Pointer not checked for null before use : trans | CERT EXP08-C,EXP34-C
| 158 |  |
M | 143 | Procedure contains UR data flow anomalies. : id | CERT EXP33-C
| 145 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-commands.c | 143 | dict-commands.c | 145 | id

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

dict_connection_transaction_lookup_parse (165 to 182 dict-commands.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 170 | Procedure contains UR data flow anomalies. : id | CERT EXP33-C
| 172 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-commands.c | 170 | dict-commands.c | 172 | id

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

cmd_commit_async_callback (215 to 237 dict-commands.c) - FAIL

#### Standards Violation Summary

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

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

cmd_set (269 to 286 dict-commands.c) - FAIL

#### Standards Violation Summary

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

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

cmd_unset (288 to 305 dict-commands.c) - FAIL

#### Standards Violation Summary

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

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

cmd_atomic_inc (307 to 326 dict-commands.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 315 | Pointer not checked for null before use : args | CERT EXP08-C,EXP34-C
| 314 |  |
M | 311 | Procedure contains UR data flow anomalies. : diff | CERT EXP33-C
| 316 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-commands.c | 311 | dict-commands.c | 316 | diff
dict-commands.c | 311 | dict-commands.c | 324 | diff

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

dict_connection_parse_handshake (20 to 65 dict-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 40 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 36 |  |
M | 45 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 43 |  |
M | 53 | Pointer not checked for null before use : line | CERT EXP08-C,EXP34-C
| 51 |  |
M | 53 | Pointer not checked for null before use : username | CERT EXP08-C,EXP34-C
| 48 |  |
M | 63 | Pointer not checked for null before use : name | CERT EXP08-C,EXP34-C
| 57 |  |
M | 45 | Pointer not checked for null before use : value_type | CERT EXP08-C,EXP34-C
| 40 |  |

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

dict_connection_dict_init (67 to 94 dict-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 86 | Pointer not checked for null before use : uri | CERT EXP08-C,EXP34-C
| 84 |  |
M | 73 | Pointer not checked for null before use : dict_settings | CERT EXP08-C,EXP34-C
| Ref. Line -2206 (Module 266) |  |
M | 75 | Pointer not checked for null before use : strlist | CERT EXP08-C,EXP34-C
| 73 |  |

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

dict_connection_input (96 to 141 dict-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 123 | Pointer not checked for null before use : conn.name | CERT EXP08-C,EXP34-C
| 121 |  |
M | 126 | Pointer not checked for null before use : conn.name | CERT EXP08-C,EXP34-C
| 121 |  |
M | 126 | Pointer not checked for null before use : conn.value_type | CERT EXP08-C,EXP34-C
| 121 |  |

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

dict_connection_create (143 to 155 dict-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 154 | Local structure returned in function result : conn |
M | 148 | Pointer not checked for null before use : conn | CERT EXP08-C,EXP34-C
| 147 |  |
M | 147 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1102 (Module 266) |  |

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

dict_connection_destroy (157 to 185 dict-connection.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 181 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 180 |  |
M | 181 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 182 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 181 |  |
M | 182 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 182 | Pointer not checked for null before use : (conn)->name | CERT EXP08-C,EXP34-C
| 180 |  |
M | 182 | Pointer not checked for null before use : (conn)->username | CERT EXP08-C,EXP34-C
| 181 |  |
M | 161 | Procedure contains UR data flow anomalies. : dict_connections.prev | CERT EXP33-C

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

dict_connections_destroy_all (187 to 191 dict-connection.c) - FAIL

#### Standards Violation Summary

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

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

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-connection.c | 161 | dict-connection.c | 190 | dict_connections.prev

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

file_dict_init (71 to 86 dict-file.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 79 | Pointer not checked for null before use : dict | CERT EXP08-C,EXP34-C
| 78 |  |
M | 82 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1102 (Module 387) |  |

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

file_dict_deinit (88 to 96 dict-file.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 95 | free parameter is not heap item. | CERT MEM34-C
M | 95 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 94 |  |
M | 95 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 95 | Pointer not checked for null before use : (dict)->path | CERT EXP08-C,EXP34-C
| 94 |  |
M | 94 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1102 (Module 387) |  |

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

file_dict_refresh (124 to 156 dict-file.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 152 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 150 |  |
M | 152 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 151 |  |
M | 127 | Procedure contains UR data flow anomalies. : value | CERT EXP33-C
| 151 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-file.c | 127 | dict-file.c | 151 | value

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

file_dict_lookup (158 to 168 dict-file.c) - FAIL

#### Standards Violation Summary

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

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

file_dict_iterate_init (170 to 196 dict-file.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 191 | Attempt to use already freed object. | CERT MEM31-C
M | 180 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 179 |  |
M | 181 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 180 |  |

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

file_dict_iterate (211 to 233 dict-file.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 217 | Procedure contains UR data flow anomalies. : key | CERT EXP33-C
| 219 |  |
M | 217 | Procedure contains UR data flow anomalies. : value | CERT EXP33-C
| 219 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-file.c | 217 | dict-file.c | 219 | key
dict-file.c | 217 | dict-file.c | 219 | value

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

file_dict_transaction_init (246 to 258 dict-file.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 253 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 252 |  |
M | 254 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 253 |  |

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

file_dict_apply_changes (260 to 313 dict-file.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 271 | Attempt to use already freed object. | CERT MEM31-C
M | 292 | Attempt to use already freed object. | CERT MEM31-C
M | 300 | Attempt to use already freed object. | CERT MEM31-C
M | 302 | Attempt to use already freed object. | CERT MEM31-C
M | 305 | Attempt to use already freed object. | CERT MEM31-C
M | 309 | Attempt to use already freed object. | CERT MEM31-C
M | 290 | Pointer not checked for null before use : tmp | CERT EXP08-C,EXP34-C
| 289 |  |
M | 295 | Pointer not checked for null before use : old_value | CERT EXP08-C,EXP34-C
| 294 |  |
M | 305 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 300 |  |
M | 309 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 276 |  |
M | 305 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 302 |  |
M | 276 | Procedure contains UR data flow anomalies. : key | CERT EXP33-C
| 264 |  |
M | 277 | Procedure contains UR data flow anomalies. : old_value | CERT EXP33-C
| 264 |  |
M | 265 | Procedure contains UR data flow anomalies. : orig_key | CERT EXP33-C
| 271 |  |
M | 265 | Procedure contains UR data flow anomalies. : orig_value | CERT EXP33-C
| 271 |  |
M | 279 | Procedure contains UR data flow anomalies. : value | CERT EXP33-C
| 264 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-file.c | 276 | dict-file.c | 299 | key
dict-file.c | 276 | dict-file.c | 309 | key
dict-file.c | 277 | dict-file.c | 283 | old_value
dict-file.c | 265 | dict-file.c | 271 | orig_key
dict-file.c | 265 | dict-file.c | 271 | orig_value
dict-file.c | 279 | dict-file.c | 301 | value

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

fd_copy_permissions (347 to 357 dict-file.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 356 | User input not checked before use. : src_st | CERT FIO30-C
| 352 |  |

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

fd_copy_parent_dir_permissions (359 to 377 dict-file.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 375 | User input not checked before use. : src_st | CERT FIO30-C
| 371 |  |
M | 371 | Pointer not checked for null before use : src_dir | CERT EXP08-C,EXP34-C
| 370 |  |

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

file_dict_write_changes (379 to 433 dict-file.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 388 | Attempt to use already freed object. | CERT MEM31-C
M | 391 | Attempt to use already freed object. | CERT MEM31-C
M | 402 | Attempt to use already freed object. | CERT MEM31-C
M | 406 | Attempt to use already freed object. | CERT MEM31-C
M | 413 | Attempt to use already freed object. | CERT MEM31-C
M | 430 | Attempt to use already freed object. | CERT MEM31-C
M | 412 | Pointer not checked for null before use : output | CERT EXP08-C,EXP34-C
| 411 |  |
M | 388 | Pointer not checked for null before use : file_dict_dotlock_settings.context | CERT EXP08-C,EXP34-C
| 66 |  |
M | 388 | Pointer not checked for null before use : file_dict_dotlock_settings.lock_suffix | CERT EXP08-C,EXP34-C
| 66 |  |
M | 388 | Pointer not checked for null before use : file_dict_dotlock_settings.temp_prefix | CERT EXP08-C,EXP34-C
| 66 |  |
M | 414 | Pointer not checked for null before use : iter | CERT EXP08-C,EXP34-C
| 413 |  |
M | 382 | Procedure contains UR data flow anomalies. : dotlock | CERT EXP33-C
| 423 |  |
M | 385 | Procedure contains UR data flow anomalies. : key | CERT EXP33-C
| 414 |  |
M | 385 | Procedure contains UR data flow anomalies. : value | CERT EXP33-C
| 414 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-file.c | 382 | dict-file.c | 423 | dotlock
dict-file.c | 385 | dict-file.c | 414 | key
dict-file.c | 385 | dict-file.c | 414 | value

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

file_dict_set (466 to 477 dict-file.c) - FAIL

#### Standards Violation Summary

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

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

file_dict_unset (479 to 489 dict-file.c) - FAIL

#### Standards Violation Summary

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

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

file_dict_atomic_inc (491 to 503 dict-file.c) - FAIL

#### Standards Violation Summary

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

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

pattern_read_name (41 to 66 dict-sql-settings.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 48 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 47 |  |
M | 58 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 58 |  |
M | 64 | Pointer not checked for null before use : name | CERT EXP08-C,EXP34-C
| 47 |  |

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

dict_sql_fields_map (68 to 119 dict-sql-settings.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 90 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 87 |  |
M | 83 | Pointer not checked for null before use : pattern | CERT EXP08-C,EXP34-C
| 77 |  |
M | 81 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 81 |  |
M | 97 | Pointer not checked for null before use : name | CERT EXP08-C,EXP34-C
| 90 |  |
M | 102 | Procedure contains UR data flow anomalies. : fields.variable | CERT EXP33-C

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql-settings.c | 102 | dict-sql-settings.c | 109 | fields.variable
dict-sql-settings.c | 102 | dict-sql-settings.c | 92 | fields.variable

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

dict_sql_map_finish (121 to 144 dict-sql-settings.c) - FAIL

#### Standards Violation Summary

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

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

parse_setting (146 to 174 dict-sql-settings.c) - FAIL

#### Standards Violation Summary

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

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

dict_sql_settings_read (213 to 233 dict-sql-settings.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 232 | Local structure returned in function result : ctx |
M | 221 | Pointer not checked for null before use : ctx.set | CERT EXP08-C,EXP34-C
| 219 |  |
M | 223 | Pointer not checked for null before use : ctx.pool | CERT EXP08-C,EXP34-C
| 218 |  |
M | 223 | Pointer not checked for null before use : ctx.pool | CERT EXP08-C,EXP34-C
| 218 |  |
M | 223 | Pointer not checked for null before use : ctx.pool | CERT EXP08-C,EXP34-C
| 218 |  |

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

sql_dict_init (74 to 99 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 83 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 82 |  |
M | 84 | Pointer not checked for null before use : dict | CERT EXP08-C,EXP34-C
| 83 |  |
C | 74 | Procedure not called in code analysed : sql_dict_init |

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

sql_dict_deinit (101 to 107 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 101 | Procedure not called in code analysed : sql_dict_deinit |

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

dict_sql_map_match (109 to 177 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 175 | Array Bound exceeded. | CERT ARR30-C
M | 124 | Pointer not checked for null before use : pat | CERT EXP08-C,EXP34-C
| 123 |  |
M | 135 | Pointer not checked for null before use : field | CERT EXP08-C,EXP34-C
| 134 |  |
M | 151 | Pointer not checked for null before use : field | CERT EXP08-C,EXP34-C
| 150 |  |
M | 143 | Pointer not checked for null before use : path | CERT EXP08-C,EXP34-C
| 141 |  |
M | 120 | Pointer not checked for null before use : pat | CERT EXP08-C,EXP34-C
| 119 |  |
M | 144 | Pointer not checked for null before use : pat | CERT EXP08-C,EXP34-C
| 132 |  |

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

sql_dict_find_map (179 to 198 dict-sql.c) - FAIL

#### Standards Violation Summary

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

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

sql_dict_where_build (200 to 263 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 226 | Pointer not checked for null before use : sql_fields | CERT EXP08-C,EXP34-C
| 210 |  |
M | 227 | Pointer not checked for null before use : values | CERT EXP08-C,EXP34-C
| 211 |  |
M | 207 | Procedure contains UR data flow anomalies. : count2 | CERT EXP33-C
| 213 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 207 | dict-sql.c | 213 | count2

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

sql_dict_lookup (265 to 305 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 284 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 282 |  |
M | 291 | Pointer not checked for null before use : result | CERT EXP08-C,EXP34-C
| 288 |  |
M | 276 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 274 |  |
M | 286 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 274 |  |
M | 270 | Procedure contains UR data flow anomalies. : values.arr.buffer | CERT EXP33-C
| 274 |  |
M | 270 | Procedure contains UR data flow anomalies. : values.arr.element_size | CERT EXP33-C
| 274 |  |
C | 265 | Procedure not called in code analysed : sql_dict_lookup |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 270 | dict-sql.c | 274 | values.arr.buffer
dict-sql.c | 270 | dict-sql.c | 274 | values.arr.element_size

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

sql_dict_iterate_find_next_map (307 to 337 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 328 | Local structure returned in function result : maps |
M | 318 | Pointer not checked for null before use : maps | CERT EXP08-C,EXP34-C
| 316 |  |
M | 313 | Procedure contains UR data flow anomalies. : pat_len | CERT EXP33-C
| 323 |  |
M | 313 | Procedure contains UR data flow anomalies. : path_len | CERT EXP33-C
| 322 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 313 | dict-sql.c | 323 | pat_len
dict-sql.c | 313 | dict-sql.c | 322 | path_len

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

sql_dict_iterate_next_query (339 to 389 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 366 | Pointer not checked for null before use : sql_fields | CERT EXP08-C,EXP34-C
| 357 |  |
M | 378 | Pointer not checked for null before use : sql_fields | CERT EXP08-C,EXP34-C
| 357 |  |
M | 355 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 353 |  |
M | 343 | Procedure contains UR data flow anomalies. : values.arr.buffer | CERT EXP33-C
| 348 |  |
M | 343 | Procedure contains UR data flow anomalies. : values.arr.element_size | CERT EXP33-C
| 348 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 343 | dict-sql.c | 348 | values.arr.buffer
dict-sql.c | 343 | dict-sql.c | 348 | values.arr.element_size

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

sql_dict_iterate_init (391 to 418 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 400 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 399 |  |
M | 401 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 400 |  |
C | 391 | Procedure not called in code analysed : sql_dict_iterate_init |

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

sql_dict_iterate (420 to 469 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 454 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 454 |  |
C | 420 | Procedure not called in code analysed : sql_dict_iterate |

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

sql_dict_iterate_deinit (471 to 481 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 471 | Procedure not called in code analysed : sql_dict_iterate_deinit |

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

sql_dict_transaction_init (483 to 494 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 490 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 489 |  |
M | 489 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1102 (Module 389) |  |
C | 483 | Procedure not called in code analysed : sql_dict_transaction_init |

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

sql_dict_transaction_commit (496 to 536 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 531 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 530 |  |
M | 530 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 508 |  |
M | 504 | Procedure contains UR data flow anomalies. : error | CERT EXP33-C
| 514 |  |
C | 496 | Procedure not called in code analysed : sql_dict_transaction_commit |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 504 | dict-sql.c | 514 | error

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

sql_dict_transaction_rollback (538 to 550 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 549 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 548 |  |
C | 538 | Procedure not called in code analysed : sql_dict_transaction_rollback |

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

sql_dict_set_query (566 to 631 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 579 | Pointer not checked for null before use : prefix | CERT EXP08-C,EXP34-C
| 577 |  |
M | 580 | Pointer not checked for null before use : suffix | CERT EXP08-C,EXP34-C
| 578 |  |
M | 579 | Pointer not checked for null before use : fields | CERT EXP08-C,EXP34-C
| 574 |  |
M | 607 | Pointer not checked for null before use : extra_values | CERT EXP08-C,EXP34-C
| 602 |  |
M | 571 | Procedure contains UR data flow anomalies. : field_count | CERT EXP33-C
| 575 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 571 | dict-sql.c | 575 | field_count

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

sql_dict_update_query (633 to 661 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 647 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 646 |  |
M | 647 | Pointer not checked for null before use : fields | CERT EXP08-C,EXP34-C
| 643 |  |

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

sql_dict_set (663 to 700 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 692 | Pointer not checked for null before use : build.fields | CERT EXP08-C,EXP34-C
| 690 |  |
M | 693 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 692 |  |
M | 693 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 692 |  |
M | 693 | Pointer not checked for null before use : field.value | CERT EXP08-C,EXP34-C
| 688 |  |
M | 693 | Pointer not checked for null before use : field.map | CERT EXP08-C,EXP34-C
| 687 |  |
M | 697 | Pointer not checked for null before use : build.fields.v_modifiable | CERT EXP08-C,EXP34-C
| 690 |  |
M | 697 | Pointer not checked for null before use : build.fields.v | CERT EXP08-C,EXP34-C
| 690 |  |
M | 697 | Pointer not checked for null before use : build.fields.arr | CERT EXP08-C,EXP34-C
| 690 |  |
M | 697 | Pointer not checked for null before use : build.fields.arr.element_size | CERT EXP08-C,EXP34-C
| 690 |  |
M | 697 | Pointer not checked for null before use : build.fields.arr.buffer | CERT EXP08-C,EXP34-C
| 690 |  |
M | 697 | Pointer not checked for null before use : build.dict | CERT EXP08-C,EXP34-C
| 691 |  |
M | 698 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 697 |  |
M | 674 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 672 |  |
M | 695 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 672 |  |
M | 670 | Procedure contains UR data flow anomalies. : values.arr.buffer | CERT EXP33-C
| 672 |  |
M | 670 | Procedure contains UR data flow anomalies. : values.arr.element_size | CERT EXP33-C
| 672 |  |
C | 663 | Procedure not called in code analysed : sql_dict_set |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 670 | dict-sql.c | 672 | values.arr.buffer
dict-sql.c | 670 | dict-sql.c | 672 | values.arr.element_size

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

sql_dict_unset (702 to 729 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 724 | Pointer not checked for null before use : query | CERT EXP08-C,EXP34-C
| 722 |  |
M | 716 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 714 |  |
M | 725 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 714 |  |
M | 709 | Procedure contains UR data flow anomalies. : values.arr.buffer | CERT EXP33-C
| 714 |  |
M | 709 | Procedure contains UR data flow anomalies. : values.arr.element_size | CERT EXP33-C
| 714 |  |
C | 702 | Procedure not called in code analysed : sql_dict_unset |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 709 | dict-sql.c | 714 | values.arr.buffer
dict-sql.c | 709 | dict-sql.c | 714 | values.arr.element_size

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

sql_dict_next_inc_row (731 to 745 dict-sql.c) - FAIL

#### Standards Violation Summary

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

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

sql_dict_atomic_inc_real (747 to 775 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 766 | Pointer not checked for null before use : build.fields | CERT EXP08-C,EXP34-C
| 764 |  |
M | 767 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 766 |  |
M | 767 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 766 |  |
M | 767 | Pointer not checked for null before use : field.value | CERT EXP08-C,EXP34-C
| 762 |  |
M | 767 | Pointer not checked for null before use : field.map | CERT EXP08-C,EXP34-C
| 761 |  |
M | 772 | Pointer not checked for null before use : build.fields.v_modifiable | CERT EXP08-C,EXP34-C
| 764 |  |
M | 772 | Pointer not checked for null before use : build.fields.v | CERT EXP08-C,EXP34-C
| 764 |  |
M | 772 | Pointer not checked for null before use : build.fields.arr | CERT EXP08-C,EXP34-C
| 764 |  |
M | 772 | Pointer not checked for null before use : build.fields.arr.element_size | CERT EXP08-C,EXP34-C
| 764 |  |
M | 772 | Pointer not checked for null before use : build.fields.arr.buffer | CERT EXP08-C,EXP34-C
| 764 |  |
M | 772 | Pointer not checked for null before use : build.dict | CERT EXP08-C,EXP34-C
| 765 |  |
M | 769 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 754 |  |
M | 752 | Procedure contains UR data flow anomalies. : values.arr.buffer | CERT EXP33-C
| 754 |  |
M | 752 | Procedure contains UR data flow anomalies. : values.arr.element_size | CERT EXP33-C
| 754 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 752 | dict-sql.c | 754 | values.arr.buffer
dict-sql.c | 752 | dict-sql.c | 754 | values.arr.element_size

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

sql_dict_prev_inc_flush (777 to 782 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 780 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1102 (Module 389) |  |

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

sql_dict_maps_are_mergeable (784 to 818 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 814 | Pointer not checked for null before use : v2 | CERT EXP08-C,EXP34-C
| 809 |  |
M | 792 | Procedure contains UR data flow anomalies. : map1_values.arr.buffer | CERT EXP33-C
| 805 |  |
M | 792 | Procedure contains UR data flow anomalies. : map1_values.arr.element_size | CERT EXP33-C
| 805 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 792 | dict-sql.c | 805 | map1_values.arr.buffer
dict-sql.c | 792 | dict-sql.c | 805 | map1_values.arr.element_size

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

sql_dict_atomic_inc (820 to 873 dict-sql.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 848 | Pointer not checked for null before use : ctx.inc_row | CERT EXP08-C,EXP34-C
| 847 |  |
M | 855 | Pointer not checked for null before use : build.fields | CERT EXP08-C,EXP34-C
| 853 |  |
M | 867 | Pointer not checked for null before use : build.fields.v_modifiable | CERT EXP08-C,EXP34-C
| 853 |  |
M | 867 | Pointer not checked for null before use : build.fields.v | CERT EXP08-C,EXP34-C
| 853 |  |
M | 867 | Pointer not checked for null before use : build.fields.arr | CERT EXP08-C,EXP34-C
| 853 |  |
M | 867 | Pointer not checked for null before use : build.fields.arr.element_size | CERT EXP08-C,EXP34-C
| 853 |  |
M | 867 | Pointer not checked for null before use : build.fields.arr.buffer | CERT EXP08-C,EXP34-C
| 853 |  |
M | 867 | Pointer not checked for null before use : build.dict | CERT EXP08-C,EXP34-C
| 854 |  |
M | 831 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 829 |  |
M | 840 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 829 |  |
M | 827 | Procedure contains UR data flow anomalies. : values.arr.buffer | CERT EXP33-C
| 829 |  |
M | 827 | Procedure contains UR data flow anomalies. : values.arr.element_size | CERT EXP33-C
| 829 |  |
C | 820 | Procedure not called in code analysed : sql_dict_atomic_inc |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
dict-sql.c | 827 | dict-sql.c | 829 | values.arr.buffer
dict-sql.c | 827 | dict-sql.c | 829 | values.arr.element_size

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

dict_sql_register (897 to 914 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 910 | Pointer not checked for null before use : dict_sql_drivers | CERT EXP08-C,EXP34-C
| 909 |  |
M | 905 | Pointer not checked for null before use : sql_drivers.arr.buffer | CERT EXP08-C,EXP34-C
| 157 (sql-api-private.h) |  |
M | 906 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1102 (Module 389) |  |
M | 910 | Pointer not checked for null before use : drivers | CERT EXP08-C,EXP34-C
| 905 |  |
C | 897 | Procedure not called in code analysed : dict_sql_register |

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

dict_sql_unregister (916 to 924 dict-sql.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 916 | Procedure not called in code analysed : dict_sql_unregister |

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

dict_driver_lookup (11 to 22 dict.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 19 | Local structure returned in function result : dict |
M | 15 | Pointer not checked for null before use : dict_drivers.v | CERT EXP08-C,EXP34-C
| 9 |  |
M | 15 | Pointer not checked for null before use : dict_drivers.arr.buffer | CERT EXP08-C,EXP34-C
| 9 |  |

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

dict_driver_unregister (36 to 52 dict.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 41 | Pointer not checked for null before use : dict_drivers.v | CERT EXP08-C,EXP34-C
| 9 |  |
M | 41 | Pointer not checked for null before use : dict_drivers.arr.buffer | CERT EXP08-C,EXP34-C
| 9 |  |

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

dict_drivers_register_builtin (54 to 58 dict.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 56 | Pointer not checked for null before use : dict_driver_client.name | CERT EXP08-C,EXP34-C
| 91 (buffer.h) |  |
M | 57 | Pointer not checked for null before use : dict_driver_file.name | CERT EXP08-C,EXP34-C
| 89 (buffer.h) |  |

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

dict_drivers_unregister_builtin (60 to 64 dict.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 62 | Pointer not checked for null before use : dict_driver_client.name | CERT EXP08-C,EXP34-C
| 91 (buffer.h) |  |
M | 63 | Pointer not checked for null before use : dict_driver_file.name | CERT EXP08-C,EXP34-C
| 89 (buffer.h) |  |

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

dict_init (66 to 89 dict.c) - FAIL

#### Standards Violation Summary

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

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

dict_escape_string (214 to 248 dict.c) - FAIL

#### Standards Violation Summary

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

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

dict_unescape_string (250 to 281 dict.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 266 | Pointer not checked for null before use : ret | CERT EXP08-C,EXP34-C
| 265 |  |
M | 268 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 272 |  |

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

dict_die (18 to 21 main.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 18 | Procedure not called in code analysed : dict_die |

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

client_connected (23 to 27 main.c) - FAIL

#### Standards Violation Summary

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

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

main_init (43 to 67 main.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 49 | Pointer not checked for null before use : sets | CERT EXP08-C,EXP34-C
| 48 |  |
M | 51 | Pointer not checked for null before use : dict_settings | CERT EXP08-C,EXP34-C
| 49 |  |
M | 61 | Pointer not checked for null before use : mod_set.version | CERT EXP08-C,EXP34-C
| 58 |  |
M | 62 | Pointer not checked for null before use : modules | CERT EXP08-C,EXP34-C
| 61 |  |

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

main (80 to 107 main.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 104 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 104 | Procedure contains UR data flow anomalies. : (default_pool)->v | CERT EXP33-C
M | 86 | Procedure contains UR data flow anomalies. : error | CERT EXP33-C
| 92 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
[external declaration] |  | main.c | 104 | (default_pool)->v
main.c | 86 | main.c | 92 | error

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

test_dict_escape (10 to 34 test-dict.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 27 | Sizeof argument is a pointer. | CERT EXP01-C
C | 10 | Procedure not called in code analysed : test_dict_escape |

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

### End of Code Review Report

###

### Copyright © 2010 Liverpool Data Research Associates