LDRA Testbed ® Code Review Report

System : Dovecot-src-lda






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 18:55:01
  • 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
Report on Program Components

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
73 77 S Macro replacement list needs parentheses. CERT PRE02-C
51 78 S Macro parameter not in brackets. CERT PRE01-C,PRE02-C
1 483 S free parameter is not heap item. CERT MEM34-C
2 577 S Sizeof argument is a pointer. CERT EXP01-C
20 5 D Procedure contains UR data flow anomalies. CERT EXP33-C
91 45 D Pointer not checked for null before use CERT EXP08-C,EXP34-C
1 51 D Attempt to read from freed memory. CERT MEM30-C
52 69 D Procedure contains UR data flow anomalies. CERT EXP33-C
1 75 D Attempt to open file pointer more than once CERT FIO31-C
6 77 D Local structure returned in function result  


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

No Optional Standards Violated

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 82 program components, 43 (52.44 %) pass ( of which 0 conditionally pass ) and 39 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 duplicate_cmp duplicate.c 0 0
Pass duplicate_hash duplicate.c 0 0
FAIL duplicate_read_records duplicate.c 3 - 6 -
FAIL duplicate_read duplicate.c 2 - 4 -
FAIL duplicate_file_new duplicate.c 2 - 14 -
Pass duplicate_file_free duplicate.c 0 0
FAIL duplicate_check duplicate.c 3 - 27 -
FAIL duplicate_mark duplicate.c 1 - 9 -
FAIL duplicate_flush duplicate.c 3 - 7 -
FAIL duplicate_init duplicate.c 5 - 28 -
FAIL duplicate_deinit duplicate.c 1 - 4 -
Pass lda_settings_check lda-settings.c 0 0
Pass buffer_get_data buffer.h analysed in lmtp-client.c 0 0
Pass buffer_get_used_size buffer.h analysed in lmtp-client.c 0 0
Pass array_create_from_buffer_i array.h analysed in lmtp-client.c 0 0
FAIL array_create_i array.h analysed in lmtp-client.c 1 - 17 -
Pass array_free_i array.h analysed in lmtp-client.c 0 0
Pass array_is_created_i array.h analysed in lmtp-client.c 0 0
Pass array_get_pool_i array.h analysed in lmtp-client.c 0 0
Pass array_clear_i array.h analysed in lmtp-client.c 0 0
Pass array_append_i array.h analysed in lmtp-client.c 0 0
Pass array_append_array_i array.h analysed in lmtp-client.c 0 0
Pass array_insert_i array.h analysed in lmtp-client.c 0 0
Pass array_delete_i array.h analysed in lmtp-client.c 0 0
Pass array_get_i array.h analysed in lmtp-client.c 0 0
Pass array_idx_i array.h analysed in lmtp-client.c 0 0
Pass array_get_modifiable_i array.h analysed in lmtp-client.c 0 0
Pass array_append_space_i array.h analysed in lmtp-client.c 0 0
Pass array_copy array.h analysed in lmtp-client.c 0 0
Pass array_count_i array.h analysed in lmtp-client.c 0 0
FAIL lmtp_client_init lmtp-client.c 2 - 9 -
Pass lmtp_client_close lmtp-client.c 0 0
Pass lmtp_client_ref lmtp-client.c 0 0
Pass lmtp_client_unref lmtp-client.c 0 0
Pass lmtp_client_deinit lmtp-client.c 0 0
Pass lmtp_client_state_to_string lmtp-client.c 0 0
FAIL lmtp_client_fail lmtp-client.c 1 - 2 -
FAIL lmtp_client_rcpt_next lmtp-client.c 1 - 7 -
Pass lmtp_client_send_data_cmd lmtp-client.c 0 0
Pass lmtp_client_data_next lmtp-client.c 0 0
FAIL lmtp_client_send_data lmtp-client.c 2 - 2 -
Pass lmtp_client_send_handshake lmtp-client.c 0 0
Pass lmtp_input_get_reply_code lmtp-client.c 0 0
Pass lmtp_client_input_line lmtp-client.c 0 0
FAIL lmtp_client_input lmtp-client.c 1 - 14 -
Pass lmtp_client_wait_connect lmtp-client.c 0 0
FAIL lmtp_client_output lmtp-client.c 1 - 3 -
Pass lmtp_client_connect lmtp-client.c 0 0

Quality Result   Procedure   Source File   Unique Violations   Failure Density  
          (Viols/R.Line %)  
FAIL lmtp_client_dns_done lmtp-client.c 1 - 7 -
Pass lmtp_client_connect_tcp lmtp-client.c 0 0
Pass lmtp_client_set_data_header lmtp-client.c 0 0
FAIL lmtp_client_send_rcpts lmtp-client.c 3 - 19 -
FAIL lmtp_client_add_rcpt lmtp-client.c 1 - 2 -
Pass lmtp_client_send lmtp-client.c 0 0
Pass lmtp_client_send_more lmtp-client.c 0 0
Pass lmtp_client_set data_output_callback lmtp-client.c 0 0
FAIL mail_deliver_get_address mail-deliver.c 2 - 7 -
FAIL mail_deliver_get_log_var_expand_table mail-deliver.c 3 - 13 -
FAIL mail_deliver_log mail-deliver.c 1 - 17 -
Pass mailbox_name_to_mutf7 mail-deliver.c 0 0
FAIL mail_deliver_save_open mail-deliver.c 3 - 7 -
FAIL mail_deliver_save mail-deliver.c 3 - 13 -
Pass mail_deliver_ge _return_address mail-deliver.c 0 0
Pass mail_deliver_ge _new_message_id mail-deliver.c 0 0
FAIL mail_deliver mail-deliver.c 3 - 9 -
FAIL get_var_expand_table mail-send.c 3 - 25 -
FAIL mail_send_rejection mail-send.c 6 - 10 -
FAIL mail_send_forward mail-send.c 5 - 15 -
Pass uni_utf8_char_bytes unichar.h analysed in main.c 0 0
FAIL escape_local_part main.c 2 - 5 -
FAIL address_sanitize main.c 1 - 8 -
FAIL deliver_create_dir main.c 3 - 13 -
FAIL seekable_fd_callback main.c 2 - 7 -
FAIL create_raw_stream main.c 6 - 13 -
FAIL failure_exit_callback main.c 1 - 5 -
Pass print_help main.c 0 0
FAIL main main.c 5 - 6 -
FAIL smtp_client_devnull smtp-client.c 2 - 21 -
FAIL smtp_client_run_sendmail smtp-client.c 1 - 7 -
FAIL smtp_client_open smtp-client.c 5 - 8 -
FAIL smtp_client_close smtp-client.c 2 - 3 -


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-lda\smtp-client.c Fri Mar 26 20:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-lda\mail-send.c Sun Apr 04 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-lda\mail-deliver.c Fri Jun 25 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-lda\lmtp-client.c Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-lda\lda-settings.c Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-lda\duplicate.c Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lda\main.c Fri Apr 23 19:00:04 2010




Global Basic Information

Number of procedures: 81
Number of locally uncalled procedures: 0
Maximum loop depth: 2
Total Cyclomatic Complexity: 302
Number of reformatted executable lines: 2918
Number of lines of comments: 5932



Summary Report on all Program Components which FAIL



Globals / code outside procedures - FAIL

Standards Violation Summary - All files

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

Code File: Src Line Violation Standard
M ioloop.h: 56 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M ioloop.h: 75 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M ioloop.h: 75 Macro replacement list needs parentheses. CERT PRE02-C
M istream.h: 53 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M istream.h: 53 Macro replacement list needs parentheses. CERT PRE02-C
M ostream.h: 61 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M ostream.h: 61 Macro replacement list needs parentheses. CERT PRE02-C
M 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 lda-settings.c: 15 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M lda-settings.c: 15 Macro replacement list needs parentheses. CERT PRE02-C
M lda-settings.c: 17 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M lda-settings.c: 17 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

Code File: Src Line Violation Standard
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 dns-lookup.h: 27 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M dns-lookup.h: 27 Macro replacement list needs parentheses. CERT PRE02-C
M mail-error.h: 19 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M mail-error.h: 19 Macro replacement list needs parentheses. CERT PRE02-C
M mail-storage.h: 414 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M istream-header-filter.h: 33 Macro parameter not in brackets. CERT PRE01-C,PRE02-C
M rfc822-parser.h: 13 Procedure contains UR data flow anomalies. : rfc822_atext_chars CERT EXP33-C
  315 (main.c)    

[ Top of Report | Procedure Table | Contents ]







duplicate_read_records
(90 to 157 duplicate.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 141 Pointer not checked for null before use : d CERT EXP08-C,EXP34-C
  140    
M 141 Pointer not checked for null before use : new_id CERT EXP08-C,EXP34-C
  138    
M 94 Procedure contains UR data flow anomalies. : data CERT EXP33-C
  100    
M 96 Procedure contains UR data flow anomalies. : size CERT EXP33-C
  100    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
duplicate.c 94 duplicate.c 100 data
duplicate.c 96 duplicate.c 100 size

[ Top of Report | Procedure Table | Contents ]







duplicate_read
(159 to 199 duplicate.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 163 Procedure contains UR data flow anomalies. : data CERT EXP33-C
  178    
M 164 Procedure contains UR data flow anomalies. : size CERT EXP33-C
  178    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
duplicate.c 163 duplicate.c 178 data
duplicate.c 164 duplicate.c 178 size

[ Top of Report | Procedure Table | Contents ]







duplicate_file_new
(201 to 219 duplicate.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 218 Local structure returned in function result : file  
M 208 Pointer not checked for null before use : pool CERT EXP08-C,EXP34-C
  206    
M 209 Pointer not checked for null before use : file CERT EXP08-C,EXP34-C
  208    


[ Top of Report | Procedure Table | Contents ]







duplicate_check
(233 to 246 duplicate.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 245 Pointer not checked for null before use : d.user CERT EXP08-C,EXP34-C
  243    
M 245 Pointer not checked for null before use : d.id CERT EXP08-C,EXP34-C
  241    
M 236 Procedure contains UR data flow anomalies. : d.time CERT EXP33-C
  245    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
duplicate.c 236 duplicate.c 245 d.time

[ Top of Report | Procedure Table | Contents ]







duplicate_mark
(248 to 269 duplicate.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 262 Pointer not checked for null before use : d CERT EXP08-C,EXP34-C
  261    
M 262 Pointer not checked for null before use : new_id CERT EXP08-C,EXP34-C
  259    


[ Top of Report | Procedure Table | Contents ]







duplicate_flush
(271 to 309 duplicate.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 287 Pointer not checked for null before use : output CERT EXP08-C,EXP34-C
  286    
M 278 Procedure contains UR data flow anomalies. : key CERT EXP33-C
  291    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
duplicate.c 278 duplicate.c 291 key

[ Top of Report | Procedure Table | Contents ]







duplicate_init
(311 to 328 duplicate.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 327 Local structure returned in function result : ctx  
M 321 Pointer not checked for null before use : ctx CERT EXP08-C,EXP34-C
  320    
M 325 Pointer not checked for null before use : mail_set CERT EXP08-C,EXP34-C
  324    
M 315 Procedure contains UR data flow anomalies. : home CERT EXP33-C
  317    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
duplicate.c 315 duplicate.c 317 home

[ Top of Report | Procedure Table | Contents ]







duplicate_deinit
(330 to 341 duplicate.c) - FAIL

Standards Violation Summary

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


[ Top of Report | Procedure Table | Contents ]







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







lmtp_client_init
(74 to 97 lmtp-client.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 96 Local structure returned in function result : client  
M 85 Pointer not checked for null before use : pool CERT EXP08-C,EXP34-C
  84    
M 86 Pointer not checked for null before use : client CERT EXP08-C,EXP34-C
  85    


[ Top of Report | Procedure Table | Contents ]







lmtp_client_fail
(163 to 189 lmtp-client.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 173 Pointer not checked for null before use : recipients CERT EXP08-C,EXP34-C
  171    


[ Top of Report | Procedure Table | Contents ]







lmtp_client_rcpt_next
(191 to 207 lmtp-client.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 205 Pointer not checked for null before use : rcpt CERT EXP08-C,EXP34-C
  201    


[ Top of Report | Procedure Table | Contents ]







lmtp_client_send_data
(248 to 317 lmtp-client.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 250 Procedure contains UR data flow anomalies. : data CERT EXP33-C
  259    
M 252 Procedure contains UR data flow anomalies. : size CERT EXP33-C
  259    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
lmtp-client.c 250 lmtp-client.c 259 data
lmtp-client.c 252 lmtp-client.c 259 size

[ Top of Report | Procedure Table | Contents ]







lmtp_client_input
(417 to 439 lmtp-client.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 424 Pointer not checked for null before use : client CERT EXP08-C,EXP34-C
  423    
M 422 Pointer not checked for null before use : client CERT EXP08-C,EXP34-C
  423    
M 438 Pointer not checked for null before use : client CERT EXP08-C,EXP34-C
  432    
M 432 Pointer not checked for null before use : client.rcpt_next_receive_idx CERT EXP08-C,EXP34-C
  423    
M 432 Pointer not checked for null before use : client.rcpt_next_data_idx CERT EXP08-C,EXP34-C
  423    
M 432 Pointer not checked for null before use : client.fd CERT EXP08-C,EXP34-C
  423    
M 432 Pointer not checked for null before use : client.finish_called CERT EXP08-C,EXP34-C
  423    


[ Top of Report | Procedure Table | Contents ]







lmtp_client_output
(458 to 472 lmtp-client.c) - FAIL

Standards Violation Summary

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


[ Top of Report | Procedure Table | Contents ]







lmtp_client_dns_done
(492 to 507 lmtp-client.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 503 Pointer not checked for null before use : client.io CERT EXP08-C,EXP34-C
  502    
M 503 Pointer not checked for null before use : client.input CERT EXP08-C,EXP34-C
  502    


[ Top of Report | Procedure Table | Contents ]







lmtp_client_send_rcpts
(546 to 557 lmtp-client.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 554 Pointer not checked for null before use : rcpt CERT EXP08-C,EXP34-C
  551    
M 549 Procedure contains UR data flow anomalies. : count CERT EXP33-C
  552    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
lmtp-client.c 549 lmtp-client.c 552 count

[ Top of Report | Procedure Table | Contents ]







lmtp_client_add_rcpt
(559 to 580 lmtp-client.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 566 Pointer not checked for null before use : rcpt CERT EXP08-C,EXP34-C
  565    


[ Top of Report | Procedure Table | Contents ]







mail_deliver_get_address
(19 to 32 mail-deliver.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 22 Procedure contains UR data flow anomalies. : str CERT EXP33-C
  24    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
mail-deliver.c 22 mail-deliver.c 24 str

[ Top of Report | Procedure Table | Contents ]







mail_deliver_get_log_var_expand_table
(34 to 66 mail-deliver.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 50 Pointer not checked for null before use : tab CERT EXP08-C,EXP34-C
  49    
M 52 Pointer not checked for null before use : tab CERT EXP08-C,EXP34-C
  50    
M 47 Procedure contains UR data flow anomalies. : size CERT EXP33-C
  61    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
mail-deliver.c 47 mail-deliver.c 61 size

[ Top of Report | Procedure Table | Contents ]







mail_deliver_log
(68 to 84 mail-deliver.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 80 Pointer not checked for null before use : str CERT EXP08-C,EXP34-C
  77    
M 79 Pointer not checked for null before use : str CERT EXP08-C,EXP34-C
  77    
M 81 Pointer not checked for null before use : msg CERT EXP08-C,EXP34-C
  75    


[ Top of Report | Procedure Table | Contents ]







mail_deliver_save_open
(96 to 158 mail-deliver.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 112 Pointer not checked for null before use : name CERT EXP08-C,EXP34-C
  111    
M 132 Pointer not checked for null before use : box CERT EXP08-C,EXP34-C
  131    
M 136 Pointer not checked for null before use : storage CERT EXP08-C,EXP34-C
  135    
M 131 Pointer not checked for null before use : ns CERT EXP08-C,EXP34-C
  122    
M 103 Procedure contains UR data flow anomalies. : error CERT EXP33-C
  136    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
mail-deliver.c 103 mail-deliver.c 136 error

[ Top of Report | Procedure Table | Contents ]







mail_deliver_save
(160 to 242 mail-deliver.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 189 Pointer not checked for null before use : open_ctx.user CERT EXP08-C,EXP34-C
  184    
M 206 Pointer not checked for null before use : save_ctx CERT EXP08-C,EXP34-C
  205    
M 226 Pointer not checked for null before use : t CERT EXP08-C,EXP34-C
  225    
M 236 Pointer not checked for null before use : storage_r CERT EXP08-C,EXP34-C
  196    
M 205 Pointer not checked for null before use : t CERT EXP08-C,EXP34-C
  201    
M 206 Pointer not checked for null before use : kw CERT EXP08-C,EXP34-C
  203    
M 192 Pointer not checked for null before use : mailbox_name CERT EXP08-C,EXP34-C
  188    
M 219 Pointer not checked for null before use : mailbox_name CERT EXP08-C,EXP34-C
  188    
M 192 Pointer not checked for null before use : errstr CERT EXP08-C,EXP34-C
  189    
M 165 Procedure contains UR data flow anomalies. : box CERT EXP33-C
  189    
M 172 Procedure contains UR data flow anomalies. : changes.ignored_modseq_changes CERT EXP33-C
  215    
M 172 Procedure contains UR data flow anomalies. : changes.ignored_uid_changes CERT EXP33-C
  215    
M 172 Procedure contains UR data flow anomalies. : changes.saved_uids.arr.buffer CERT EXP33-C
  215    
M 172 Procedure contains UR data flow anomalies. : changes.saved_uids.arr.element_size CERT EXP33-C
  215    
M 172 Procedure contains UR data flow anomalies. : changes.saved_uids.v CERT EXP33-C
  215    
M 172 Procedure contains UR data flow anomalies. : changes.saved_uids.v_modifiable CERT EXP33-C
  215    
M 172 Procedure contains UR data flow anomalies. : changes.uid_validity CERT EXP33-C
  215    
M 170 Procedure contains UR data flow anomalies. : error CERT EXP33-C
  236    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
mail-deliver.c 165 mail-deliver.c 189 box
mail-deliver.c 172 mail-deliver.c 215 changes.ignored_modseq_changes
mail-deliver.c 172 mail-deliver.c 215 changes.ignored_uid_changes
mail-deliver.c 172 mail-deliver.c 215 changes.saved_uids.arr.buffer
mail-deliver.c 172 mail-deliver.c 215 changes.saved_uids.arr.element_size
mail-deliver.c 172 mail-deliver.c 215 changes.saved_uids.v
mail-deliver.c 172 mail-deliver.c 215 changes.saved_uids.v_modifiable
mail-deliver.c 172 mail-deliver.c 215 changes.uid_validity
mail-deliver.c 170 mail-deliver.c 236 error

[ Top of Report | Procedure Table | Contents ]







mail_deliver
(262 to 294 mail-deliver.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 285 Pointer not checked for null before use : NULL CERT EXP08-C,EXP34-C
M 291 Pointer not checked for null before use : NULL CERT EXP08-C,EXP34-C
M 272 Pointer not checked for null before use : storage_r CERT EXP08-C,EXP34-C
  267    
M 267 Procedure contains UR data flow anomalies. : storage_r CERT EXP33-C


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
mail-deliver.c 267 mail-deliver.c 272 storage_r

[ Top of Report | Procedure Table | Contents ]







get_var_expand_table
(25 to 50 mail-send.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 40 Pointer not checked for null before use : tab CERT EXP08-C,EXP34-C
  39    
M 42 Pointer not checked for null before use : tab CERT EXP08-C,EXP34-C
  40    
M 37 Procedure contains UR data flow anomalies. : subject CERT EXP33-C
  44    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
mail-send.c 37 mail-send.c 44 subject

[ Top of Report | Procedure Table | Contents ]







mail_send_rejection
(52 to 172 mail-send.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 154 Sizeof argument is a pointer. CERT EXP01-C
M 91 Pointer not checked for null before use : NULL CERT EXP08-C,EXP34-C
M 96 Pointer not checked for null before use : msgid CERT EXP08-C,EXP34-C
  93    
M 91 Attempt to open file pointer more than once : f CERT FIO31-C
M 104 Pointer not checked for null before use : boundary CERT EXP08-C,EXP34-C
  94    
M 107 Pointer not checked for null before use : str CERT EXP08-C,EXP34-C
  106    
M 154 Pointer not checked for null before use : input CERT EXP08-C,EXP34-C
  154    
M 72 Pointer not checked for null before use : orig_msgid CERT EXP08-C,EXP34-C
  68    
M 61 Procedure contains UR data flow anomalies. : data CERT EXP33-C
  160    
M 60 Procedure contains UR data flow anomalies. : hdr CERT EXP33-C
  132    
M 56 Procedure contains UR data flow anomalies. : input CERT EXP33-C
  145    
M 62 Procedure contains UR data flow anomalies. : orig_msgid CERT EXP33-C
  67    
M 68 Procedure contains UR data flow anomalies. : orig_msgid CERT EXP33-C
  62    
M 64 Procedure contains UR data flow anomalies. : size CERT EXP33-C
  160    
M 62 Procedure contains UR data flow anomalies. : value CERT EXP33-C
  70    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
mail-send.c 61 mail-send.c 160 data
mail-send.c 60 mail-send.c 132 hdr
mail-send.c 56 mail-send.c 145 input
mail-send.c 62 mail-send.c 67 orig_msgid
mail-send.c 68 mail-send.c 72 orig_msgid
mail-send.c 64 mail-send.c 160 size
mail-send.c 62 mail-send.c 70 value

[ Top of Report | Procedure Table | Contents ]







mail_send_forward
(174 to 210 mail-send.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 197 Sizeof argument is a pointer. CERT EXP01-C
M 197 Pointer not checked for null before use : input CERT EXP08-C,EXP34-C
  197    
M 191 Pointer not checked for null before use : return_path CERT EXP08-C,EXP34-C
  189    
M 195 Pointer not checked for null before use : return_path CERT EXP08-C,EXP34-C
  189    
M 182 Procedure contains UR data flow anomalies. : data CERT EXP33-C
  202    
M 179 Procedure contains UR data flow anomalies. : input CERT EXP33-C
  186    
M 184 Procedure contains UR data flow anomalies. : size CERT EXP33-C
  202    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
mail-send.c 182 mail-send.c 202 data
mail-send.c 179 mail-send.c 186 input
mail-send.c 184 mail-send.c 202 size

[ Top of Report | Procedure Table | Contents ]







escape_local_part
(48 to 62 main.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 59 Array Bound exceeded. CERT ARR30-C
M 60 Pointer not checked for null before use : local_part CERT EXP08-C,EXP34-C
  60    


[ Top of Report | Procedure Table | Contents ]







address_sanitize
(64 to 86 main.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 71 Pointer not checked for null before use : pool CERT EXP08-C,EXP34-C
  70    
M 80 Pointer not checked for null before use : mailbox CERT EXP08-C,EXP34-C
  78    
M 82 Pointer not checked for null before use : mailbox CERT EXP08-C,EXP34-C
  78    


[ Top of Report | Procedure Table | Contents ]







deliver_create_dir
(88 to 111 main.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 99 Pointer not checked for null before use : ns CERT EXP08-C,EXP34-C
  97    
M 93 Procedure contains UR data flow anomalies. : gid CERT EXP33-C
  99    
M 92 Procedure contains UR data flow anomalies. : mode CERT EXP33-C
  99    
M 91 Procedure contains UR data flow anomalies. : origin CERT EXP33-C
  99    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
main.c 93 main.c 99 gid
main.c 92 main.c 99 mode
main.c 91 main.c 99 origin

[ Top of Report | Procedure Table | Contents ]







seekable_fd_callback
(113 to 148 main.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 121 Pointer not checked for null before use : path CERT EXP08-C,EXP34-C
  120    
M 125 Pointer not checked for null before use : dir CERT EXP08-C,EXP34-C
  124    
M 128 Pointer not checked for null before use : dir CERT EXP08-C,EXP34-C
  127    
C 113 Procedure not called in code analysed : seekable_fd_callback  


[ Top of Report | Procedure Table | Contents ]







create_raw_stream
(150 to 205 main.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 190 free parameter is not heap item. CERT MEM34-C
M 204 Local structure returned in function result : input  
M 164 Pointer not checked for null before use : input CERT EXP08-C,EXP34-C
  163    
M 194 Pointer not checked for null before use : input2 CERT EXP08-C,EXP34-C
  193    
M 201 Pointer not checked for null before use : input_list CERT EXP08-C,EXP34-C
  200    
M 176 Pointer not checked for null before use : mtime_r CERT EXP08-C,EXP34-C
  160    
M 200 Pointer not checked for null before use : input2 CERT EXP08-C,EXP34-C
  196    
M 155 Procedure contains UR data flow anomalies. : data CERT EXP33-C
  166    
M 157 Procedure contains UR data flow anomalies. : size CERT EXP33-C
  166    
M 158 Procedure contains UR data flow anomalies. : tz CERT EXP33-C
  176    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
main.c 155 main.c 166 data
main.c 157 main.c 166 size
main.c 158 main.c 176 tz

[ Top of Report | Procedure Table | Contents ]







failure_exit_callback
(207 to 230 main.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
C 207 Procedure not called in code analysed : failure_exit_callback  


[ Top of Report | Procedure Table | Contents ]







main
(239 to 495 main.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 392 Pointer not checked for null before use : sets CERT EXP08-C,EXP34-C
  391    
M 393 Pointer not checked for null before use : raw_mail_user CERT EXP08-C,EXP34-C
  392    
M 401 Pointer not checked for null before use : raw_ns CERT EXP08-C,EXP34-C
  400    
M 407 Pointer not checked for null before use : input CERT EXP08-C,EXP34-C
  406    
M 429 Pointer not checked for null before use : raw_box CERT EXP08-C,EXP34-C
  428    
M 435 Pointer not checked for null before use : t CERT EXP08-C,EXP34-C
  433    
M 435 Pointer not checked for null before use : headers_ctx CERT EXP08-C,EXP34-C
  434    
M 448 Pointer not checked for null before use : default_pool CERT EXP08-C,EXP34-C
  406    
M 477 Pointer not checked for null before use : default_pool CERT EXP08-C,EXP34-C
  448    
M 406 Attempt to read from freed memory. : default_pool CERT MEM30-C
M 372 Pointer not checked for null before use : user CERT EXP08-C,EXP34-C
  297    
M 460 Pointer not checked for null before use : errstr CERT EXP08-C,EXP34-C
  455    
M 473 Pointer not checked for null before use : errstr CERT EXP08-C,EXP34-C
  455    
M 265 Procedure contains UR data flow anomalies. : error CERT EXP33-C
  421    
M 247 Procedure contains UR data flow anomalies. : errstr CERT EXP33-C
  377    
M 477 Procedure contains UR data flow anomalies. : ioloop_time CERT EXP33-C
  4 (env-util.h)    
M 477 Procedure contains UR data flow anomalies. : ioloop_timeval.tv_sec CERT EXP33-C
M 477 Procedure contains UR data flow anomalies. : ioloop_timeval.tv_usec CERT EXP33-C
M 477 Procedure contains UR data flow anomalies. : my_pid CERT EXP33-C
  6 (lib-signals.h)    
M 295 Procedure contains UR data flow anomalies. : path CERT EXP33-C
  247    
M 249 Procedure contains UR data flow anomalies. : service_user CERT EXP33-C
  377    
M 254 Procedure contains UR data flow anomalies. : storage CERT EXP33-C
  448    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
main.c 265 main.c 421 error
main.c 247 main.c 377 errstr
[external declaration]   main.c 477 ioloop_time
[external declaration]   main.c 477 ioloop_timeval.tv_sec
[external declaration]   main.c 477 ioloop_timeval.tv_usec
[external declaration]   main.c 477 my_pid
main.c 295 main.c 405 path
rfc822-parser.h 13 main.c 315 rfc822_atext_chars
main.c 249 main.c 377 service_user
main.c 254 main.c 448 storage

[ Top of Report | Procedure Table | Contents ]







smtp_client_devnull
(19 to 29 smtp-client.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 28 Local structure returned in function result : client  
M 24 Pointer not checked for null before use : client CERT EXP08-C,EXP34-C
  23    
M 23 Pointer not checked for null before use : default_pool CERT EXP08-C,EXP34-C
  Ref. Line -1101 (Module 457)    


[ Top of Report | Procedure Table | Contents ]







smtp_client_run_sendmail
(31 to 57 smtp-client.c) - FAIL

Standards Violation Summary

Code Line Violation Standard
M 42 Pointer not checked for null before use : sendmail_path CERT EXP08-C,EXP34-C
  40    
M 56 Pointer not checked for null before use : argv CERT EXP08-C,EXP34-C
  49    


[ Top of Report | Procedure Table | Contents ]







smtp_client_open
(59 to 89 smtp-client.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 88 Local structure returned in function result : client  
M 85 Pointer not checked for null before use : client CERT EXP08-C,EXP34-C
  84    
M 64 Procedure contains UR data flow anomalies. : fd CERT EXP33-C
  67    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
smtp-client.c 64 smtp-client.c 67 fd

[ Top of Report | Procedure Table | Contents ]







smtp_client_close
(91 to 119 smtp-client.c) - FAIL

Standards Violation Summary

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

Code Line Violation Standard
M 93 Procedure contains UR data flow anomalies. : status CERT EXP33-C
  98    


Possible UR Anomalies

The following variables may be referenced before being given a value

File Undefine File Reference Variable
smtp-client.c 93 smtp-client.c 98 status

[ Top of Report | Procedure Table | Contents ]



End of Code Review Report

Copyright © 2010 Liverpool Data Research Associates