LDRA Testbed Code Review Report

LDRA Testbed ® Code Review Report

# System : Dovecot-src-lib-mail

Overall Result: FAIL

Report Production | Report Configuration | Analysis phases
--- | --- | ---
C/C++ LDRA Testbed Version: 8.3.0 Config. File: C:\Testbed\CCPP_830_Release\C\sate_creport.dat Produced On: Mon Aug 09 2010 at 19:31:50 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
--- | --- | --- | ---
6 | 47 S | Array Bound exceeded. | CERT ARR30-C
65 | 77 S | Macro replacement list needs parentheses. | CERT PRE02-C
45 | 78 S | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
1 | 483 S | free parameter is not heap item. | CERT MEM34-C
26 | 577 S | Sizeof argument is a pointer. | CERT EXP01-C
29 | 5 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
212 | 45 D | Pointer not checked for null before use | CERT EXP08-C,EXP34-C
6 | 51 D | Attempt to read from freed memory. | CERT MEM30-C
68 | 69 D | Procedure contains UR data flow anomalies. | CERT EXP33-C
8 | 77 D | Local structure returned in function result |
1 | 1 X | Declaration types do not match across a system. | CERT ARR31-C

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

Number of Violations | LDRA Code | (O) Optional Standards | CERT Code
--- | --- | --- | ---
2 | 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 213 program components, 102 (47.89 %) pass ( of which 0 conditionally pass ) and 111 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 |  | i_stream_dot_read_some |  | istream-dot.c |  | 1 | - |  | 3 | - |
FAIL |  | flush_pending |  | istream-dot.c |  | 1 | - |  | 6 | - |
Pass |  | flush_dot_state |  | istream-dot.c |  | 0 |  | 0 |
Pass |  | i_stream_dot_eof |  | istream-dot.c |  | 0 |  | 0 |
Pass |  | i_stream_dot_return |  | istream-dot.c |  | 0 |  | 0 |
FAIL |  | i_stream_dot_read |  | istream-dot.c |  | 2 | - |  | 1 | - |
Pass |  | i_stream_dot_stat |  | istream-dot.c |  | 0 |  | 0 |
FAIL |  | i_stream_create_dot |  | istream-dot.c |  | 1 | - |  | 10 | - |
Pass |  | buffer_get_data |  | buffer.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | buffer_get_used_size |  | buffer.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_create_from_buffer_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
FAIL |  | array_create_i |  | array.h analysed in istream-header-filter.c |  | 1 | - |  | 17 | - |
Pass |  | array_free_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_is_created_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_get_pool_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_clear_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_append_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_append_array_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_insert_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_delete_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_get_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_idx_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_get_modifiable_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_append_space_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_copy |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | array_count_i |  | array.h analysed in istream-header-filter.c |  | 0 |  | 0 |
Pass |  | i_stream_header_filter_destroy |  | istream-header-filter.c |  | 0 |  | 0 |
FAIL |  | read_mixed |  | istream-header-filter.c |  | 2 | - |  | 5 | - |
Pass |  | cmp_uint |  | istream-header-filter.c |  | 0 |  | 0 |
Pass |  | match_line_changed |  | istream-header-filter.c |  | 0 |  | 0 |
Pass |  | add_eol |  | istream-header-filter.c |  | 0 |  | 0 |
FAIL |  | read_header |  | istream-header-filter.c |  | 2 | - |  | 3 | - |
Pass |  | i_stream_header_filter_read |  | istream-header-filter.c |  | 0 |  | 0 |
Pass |  | i_stream_header filter_seek_to_header |  | istream-header-filter.c |  | 0 |  | 0 |
FAIL |  | skip_header |  | istream-header-filter.c |  | 1 | - |  | 7 | - |
Pass |  | stream_reset_to |  | istream-header-filter.c |  | 0 |  | 0 |
FAIL |  | i_stream_header_filter_seek |  | istream-header-filter.c |  | 1 | - |  | 2 | - |
Pass |  | i_stream_header_filter_sync |  | istream-header-filter.c |  | 0 |  | 0 |
FAIL |  | i_stream_header_filter_stat |  | istream-header-filter.c |  | 1 | - |  | 4 | - |
FAIL |  | i_stream_create_header_filter |  | istream-header-filter.c |  | 1 | - |  | 2 | - |
Pass |  | mbox_parse_month |  | mbox-from.c |  | 0 |  | 0 |
Pass |  | mbox_parse_year |  | mbox-from.c |  | 0 |  | 0 |
FAIL |  | mbox_from_parse |  | mbox-from.c |  | 1 | - |  | 3 | - |
FAIL |  | mbox_from_create |  | mbox-from.c |  | 1 | - |  | 10 | - |
FAIL |  | add_address |  | message-address.c |  | 1 | - |  | 28 | - |
Pass |  | parse_local_part |  | message-address.c |  | 0 |  | 0 |
Pass |  | parse_domain |  | message-address.c |  | 0 |  | 0 |
Pass |  | parse_domain_list |  | message-address.c |  | 0 |  | 0 |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
Pass |  | parse_angle_addr |  | message-address.c |  | 0 |  | 0 |
Pass |  | parse_name_addr |  | message-address.c |  | 0 |  | 0 |
Pass |  | parse_addr_spec |  | message-address.c |  | 0 |  | 0 |
Pass |  | add_fixed_address |  | message-address.c |  | 0 |  | 0 |
FAIL |  | parse_mailbox |  | message-address.c |  | 1 | - |  | 4 | - |
FAIL |  | parse_group |  | message-address.c |  | 1 | - |  | 2 | - |
FAIL |  | parse_address |  | message-address.c |  | 1 | - |  | 6 | - |
Pass |  | parse_address_list |  | message-address.c |  | 0 |  | 0 |
FAIL |  | message_address_parse_real |  | message-address.c |  | 1 | - |  | 50 | - |
Pass |  | message_address_parse |  | message-address.c |  | 0 |  | 0 |
Pass |  | message_address_write |  | message-address.c |  | 0 |  | 0 |
Pass |  | parse_timezone |  | message-date.c |  | 0 |  | 0 |
Pass |  | next_token |  | message-date.c |  | 0 |  | 0 |
FAIL |  | message_date_parser_tokens |  | message-date.c |  | 1 | - |  | 4 | - |
FAIL |  | message_date_parse |  | message-date.c |  | 1 | - |  | 15 | - |
FAIL |  | message_date_create |  | message-date.c |  | 1 | - |  | 3 | - |
Pass |  | uni_utf8_char_bytes |  | unichar.h analysed in message-decoder.c |  | 0 |  | 0 |
FAIL |  | message_decoder_init |  | message-decoder.c |  | 1 | - |  | 33 | - |
FAIL |  | message_decoder_deinit |  | message-decoder.c |  | 1 | - |  | 24 | - |
FAIL |  | parse_content_transfer_encoding |  | message-decoder.c |  | 1 | - |  | 4 | - |
FAIL |  | parse_content_type |  | message-decoder.c |  | 1 | - |  | 5 | - |
Pass |  | message_decode_header |  | message-decoder.c |  | 0 |  | 0 |
Pass |  | translation_buf_decode |  | message-decoder.c |  | 0 |  | 0 |
Pass |  | message_decode_ ody_init_charset |  | message-decoder.c |  | 0 |  | 0 |
FAIL |  | message_decode_body |  | message-decoder.c |  | 1 | - |  | 2 | - |
FAIL |  | message_decoder_decode_next_block |  | message-decoder.c |  | 1 | - |  | 6 | - |
FAIL |  | message_decoder_decode_reset |  | message-decoder.c |  | 1 | - |  | 10 | - |
FAIL |  | message_header_decode_encoded |  | message-header-decode.c |  | 1 | - |  | 5 | - |
Pass |  | is_only_lwsp |  | message-header-decode.c |  | 0 |  | 0 |
FAIL |  | message_header_decode |  | message-header-decode.c |  | 1 | - |  | 1 | - |
FAIL |  | decode_utf8_callback |  | message-header-decode.c |  | 2 | - |  | 5 | - |
FAIL |  | message_header_decode_utf8 |  | message-header-decode.c |  | 1 | - |  | 13 | - |
Pass |  | input_idx_need_encoding |  | message-header-encode.c |  | 0 |  | 0 |
Pass |  | str_last_line_len |  | message-header-encode.c |  | 0 |  | 0 |
Pass |  | message_header_encode_q |  | message-header-encode.c |  | 0 |  | 0 |
FAIL |  | message_header_encode_b |  | message-header-encode.c |  | 1 | - |  | 1 | - |
FAIL |  | message_header_encode |  | message-header-encode.c |  | 1 | - |  | 3 | - |
FAIL |  | message_parse_header_init |  | message-header-parser.c |  | 1 | - |  | 18 | - |
FAIL |  | message_parse_header_deinit |  | message-header-parser.c |  | 1 | - |  | 10 | - |
FAIL |  | message_parse_header_next |  | message-header-parser.c |  | 2 | - |  | 2 | - |
Pass |  | message_parse_header_has_nuls |  | message-header-parser.c |  | 0 |  | 0 |
FAIL |  | message_parse_header |  | message-header-parser.c |  | 2 | - |  | 13 | - |
FAIL |  | get_untokenized_msgid |  | message-id.c |  | 1 | - |  | 5 | - |
FAIL |  | strip_lwsp |  | message-id.c |  | 1 | - |  | 6 | - |
FAIL |  | message_id_get_next |  | message-id.c |  | 1 | - |  | 5 | - |
Pass |  | boundary_find |  | message-parser.c |  | 0 |  | 0 |
Pass |  | parse_body_add_block |  | message-parser.c |  | 0 |  | 0 |
Pass |  | message_parser_read_more |  | message-parser.c |  | 0 |  | 0 |
FAIL |  | message_part_append |  | message-parser.c |  | 1 | - |  | 19 | - |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | parse_next_body_multipart_init |  | message-parser.c |  | 1 | - |  | 10 | - |
Pass |  | parse_next_body message_rfc822_init |  | message-parser.c |  | 0 |  | 0 |
FAIL |  | boundary_line_find |  | message-parser.c |  | 1 | - |  | 2 | - |
Pass |  | parse_next_mime_header_init |  | message-parser.c |  | 0 |  | 0 |
FAIL |  | parse_next_body_skip_boundary_line |  | message-parser.c |  | 1 | - |  | 2 | - |
Pass |  | parse_part_finish |  | message-parser.c |  | 0 |  | 0 |
FAIL |  | parse_next_body_to_boundary |  | message-parser.c |  | 1 | - |  | 1 | - |
FAIL |  | parse_next_body_to_eof |  | message-parser.c |  | 1 | - |  | 6 | - |
FAIL |  | parse_content_type |  | message-parser.c |  | 1 | - |  | 2 | - |
FAIL |  | parse_next_header |  | message-parser.c |  | 1 | - |  | 1 | - |
Pass |  | parse_next_header_init |  | message-parser.c |  | 0 |  | 0 |
Pass |  | preparsed_parse_eof |  | message-parser.c |  | 0 |  | 0 |
Pass |  | preparsed_skip_to_next |  | message-parser.c |  | 0 |  | 0 |
Pass |  | preparsed_parse_body_finish |  | message-parser.c |  | 0 |  | 0 |
Pass |  | preparsed_parse_body_more |  | message-parser.c |  | 0 |  | 0 |
Pass |  | preparsed_parse_body_init |  | message-parser.c |  | 0 |  | 0 |
Pass |  | preparsed_parse_finish_header |  | message-parser.c |  | 0 |  | 0 |
FAIL |  | preparsed_parse_next_header |  | message-parser.c |  | 1 | - |  | 6 | - |
FAIL |  | preparsed_parse_next_header_init |  | message-parser.c |  | 1 | - |  | 4 | - |
FAIL |  | message_parser_init |  | message-parser.c |  | 1 | - |  | 15 | - |
FAIL |  | message_parser_init_from_parts |  | message-parser.c |  | 1 | - |  | 38 | - |
Pass |  | message_parser_deinit |  | message-parser.c |  | 0 |  | 0 |
Pass |  | message_parser_ arse_next_block |  | message-parser.c |  | 0 |  | 0 |
FAIL |  | message_parser_parse_header |  | message-parser.c |  | 2 | - |  | 15 | - |
FAIL |  | message_parser_parse_body |  | message-parser.c |  | 2 | - |  | 21 | - |
FAIL |  | part_serialize |  | message-part-serialize.c |  | 1 | - |  | 12 | - |
Pass |  | message_part_serialize |  | message-part-serialize.c |  | 0 |  | 0 |
Pass |  | read_next |  | message-part-serialize.c |  | 0 |  | 0 |
FAIL |  | message_part_deserialize_part |  | message-part-serialize.c |  | 2 | - |  | 6 | - |
FAIL |  | message_part_deserialize |  | message-part-serialize.c |  | 2 | - |  | 26 | - |
FAIL |  | message_search_init_real |  | message-search.c |  | 1 | - |  | 3 | - |
Pass |  | message_search_init |  | message-search.c |  | 0 |  | 0 |
FAIL |  | message_search_deinit |  | message-search.c |  | 1 | - |  | 47 | - |
FAIL |  | parse_content_type |  | message-search.c |  | 1 | - |  | 6 | - |
Pass |  | handle_header |  | message-search.c |  | 0 |  | 0 |
Pass |  | search_header |  | message-search.c |  | 0 |  | 0 |
Pass |  | message_search_more_decoded2 |  | message-search.c |  | 0 |  | 0 |
FAIL |  | message_search_more |  | message-search.c |  | 2 | - |  | 7 | - |
Pass |  | message_search_more_decoded |  | message-search.c |  | 0 |  | 0 |
Pass |  | message_search_reset |  | message-search.c |  | 0 |  | 0 |
FAIL |  | message_search_msg_real |  | message-search.c |  | 2 | - |  | 14 | - |
Pass |  | message_search_msg |  | message-search.c |  | 0 |  | 0 |
FAIL |  | message_skip_virtual |  | message-send.c |  | 1 | - |  | 2 | - |
FAIL |  | message_get_header_size |  | message-size.c |  | 2 | - |  | 3 | - |
FAIL |  | message_get_body_size |  | message-size.c |  | 2 | - |  | 4 | - |
Pass |  | message_size_add |  | message-size.c |  | 0 |  | 0 |
FAIL |  | quoted_printable_decode |  | quoted-printable.c |  | 1 | - |  | 1 | - |
Pass |  | quoted_printable_q_decode |  | quoted-printable.c |  | 0 |  | 0 |
Pass |  | rfc2231_parameter_cmp |  | rfc2231-parser.c |  | 0 |  | 0 |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
Pass |  | rfc2231_escape |  | rfc2231-parser.c |  | 0 |  | 0 |
FAIL |  | rfc2231_parse |  | rfc2231-parser.c |  | 2 | - |  | 6 | - |
FAIL |  | rfc822_parser_init |  | rfc822-parser.c |  | 1 | - |  | 17 | - |
FAIL |  | rfc822_skip_comment |  | rfc822-parser.c |  | 1 | - |  | 1 | - |
Pass |  | rfc822_skip_lwsp |  | rfc822-parser.c |  | 0 |  | 0 |
FAIL |  | rfc822_parse_atom |  | rfc822-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | rfc822_parse_dot_atom |  | rfc822-parser.c |  | 1 | - |  | 1 | - |
FAIL |  | rfc822_parse_mime_token |  | rfc822-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | rfc822_parse_quoted_string |  | rfc822-parser.c |  | 1 | - |  | 3 | - |
FAIL |  | rfc822_parse_atom_or_dot |  | rfc822-parser.c |  | 1 | - |  | 3 | - |
Pass |  | rfc822_parse_phrase |  | rfc822-parser.c |  | 0 |  | 0 |
FAIL |  | rfc822_parse_domain_literal |  | rfc822-parser.c |  | 1 | - |  | 2 | - |
Pass |  | rfc822_parse_domain |  | rfc822-parser.c |  | 0 |  | 0 |
Pass |  | rfc822_parse_content_type |  | rfc822-parser.c |  | 0 |  | 0 |
FAIL |  | rfc822_parse_content_param |  | rfc822-parser.c |  | 1 | - |  | 1 | - |
FAIL |  | test_istream_dot_one |  | test-istream-dot.c |  | 2 | - |  | 3 | - |
FAIL |  | test_istream_dot |  | test-istream-dot.c |  | 1 | - |  | 3 | - |
Pass |  | main |  | test-istream-dot.c |  | 0 |  | 0 |
Pass |  | filter_callback |  | test-istream-header-filter.c |  | 0 |  | 0 |
FAIL |  | test_istream_filter |  | test-istream-header-filter.c |  | 2 | - |  | 6 | - |
Pass |  | main |  | test-istream-header-filter.c |  | 0 |  | 0 |
FAIL |  | test_mbox_from_parse |  | test-mbox-from.c |  | 4 | - |  | 18 | - |
FAIL |  | test_mbox_from_create |  | test-mbox-from.c |  | 1 | - |  | 6 | - |
Pass |  | main |  | test-mbox-from.c |  | 0 |  | 0 |
Pass |  | cmp_addr |  | test-message-address.c |  | 0 |  | 0 |
FAIL |  | test_message_address |  | test-message-address.c |  | 2 | - |  | 2 | - |
Pass |  | main |  | test-message-address.c |  | 0 |  | 0 |
FAIL |  | test_message_date_parse |  | test-message-date.c |  | 2 | - |  | 15 | - |
Pass |  | main |  | test-message-date.c |  | 0 |  | 0 |
FAIL |  | message_header_decode_utf8 |  | test-message-decoder.c |  | 1 | - |  | 25 | - |
FAIL |  | quoted_printable_decode |  | test-message-decoder.c |  | 1 | - |  | 8 | - |
FAIL |  | charset_to_utf8_begin |  | test-message-decoder.c |  | 1 | - |  | 25 | - |
FAIL |  | charset_to_utf8_end |  | test-message-decoder.c |  | 1 | - |  | 50 | - |
FAIL |  | charset_is_utf8 |  | test-message-decoder.c |  | 1 | - |  | 25 | - |
FAIL |  | charset_to_utf8 |  | test-message-decoder.c |  | 1 | - |  | 25 | - |
FAIL |  | test_message_decoder |  | test-message-decoder.c |  | 1 | - |  | 8 | - |
Pass |  | main |  | test-message-decoder.c |  | 0 |  | 0 |
FAIL |  | charset_is_utf8 |  | test-message-header-decode.c |  | 1 | - |  | 25 | - |
FAIL |  | charset_to_utf8_begin |  | test-message-header-decode.c |  | 1 | - |  | 33 | - |
FAIL |  | charset_to_utf8_end |  | test-message-header-decode.c |  | 1 | - |  | 50 | - |
FAIL |  | charset_to_utf8 |  | test-message-header-decode.c |  | 1 | - |  | 25 | - |
FAIL |  | test_message_header_decode |  | test-message-header-decode.c |  | 2 | - |  | 8 | - |
Pass |  | main |  | test-message-header-decode.c |  | 0 |  | 0 |
Pass |  | verify_q |  | test-message-header-encode.c |  | 0 |  | 0 |
FAIL |  | test_message_header_encode_q |  | test-message-header-encode.c |  | 1 | - |  | 4 | - |
FAIL |  | verify_b |  | test-message-header-encode.c |  | 1 | - |  | 4 | - |
FAIL |  | test_message_header_encode_b |  | test-message-header-encode.c |  | 1 | - |  | 4 | - |
FAIL |  | test_message_header_encode |  | test-message-header-encode.c |  | 2 | - |  | 11 | - |
Pass |  | main |  | test-message-header-encode.c |  | 0 |  | 0 |

`Quality Result` |  | `Procedure` |  | `Source File` |  | `Unique Violations` |  | `Failure Density` |
`` |  |  |  |  | `(Viols/R.Line %)` |
FAIL |  | test_message_header_parser_one |  | test-message-header-parser.c |  | 1 | - |  | 2 | - |
FAIL |  | test_message_header_parser |  | test-message-header-parser.c |  | 2 | - |  | 20 | - |
Pass |  | hdr_write |  | test-message-header-parser.c |  | 0 |  | 0 |
FAIL |  | test_message_header_parser_partial |  | test-message-header-parser.c |  | 1 | - |  | 10 | - |
FAIL |  | test_message_header_parser_long_lines_str |  | test-message-header-parser.c |  | 1 | - |  | 8 | - |
FAIL |  | test_message_header_parser_long_lines |  | test-message-header-parser.c |  | 2 | - |  | 9 | - |
Pass |  | main |  | test-message-header-parser.c |  | 0 |  | 0 |
FAIL |  | test_message_id_get_next |  | test-message-id.c |  | 2 | - |  | 7 | - |
Pass |  | main |  | test-message-id.c |  | 0 |  | 0 |
Pass |  | msg_parts_cmp |  | test-message-parser.c |  | 0 |  | 0 |
FAIL |  | test_message_parser_small_blocks |  | test-message-parser.c |  | 2 | - |  | 5 | - |
Pass |  | main |  | test-message-parser.c |  | 0 |  | 0 |
FAIL |  | test_quoted_printable_decode |  | test-quoted-printable.c |  | 1 | - |  | 2 | - |
FAIL |  | test_quoted_printable_q_decode |  | test-quoted-printable.c |  | 2 | - |  | 10 | - |
Pass |  | main |  | test-quoted-printable.c |  | 0 |  | 0 |
FAIL |  | test_rfc2231_parser |  | test-rfc2231-parser.c |  | 1 | - |  | 4 | - |
Pass |  | main |  | test-rfc2231-parser.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-mail\test-rfc2231-parser.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-quoted-printable.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-message-parser.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-message-id.c | Mon Apr 05 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-message-header-parser.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-message-header-encode.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-message-header-decode.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-message-decoder.c | Fri Mar 26 20:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-message-date.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-message-address.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-mbox-from.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-istream-header-filter.c | Sun Apr 04 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\test-istream-dot.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\rfc822-parser.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\rfc2231-parser.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\quoted-printable.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-size.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-send.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-search.c | Fri Mar 26 20:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-part-serialize.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-parser.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-id.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-header-parser.c | Sun Apr 04 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-header-encode.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-header-decode.c | Sun Apr 04 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-decoder.c | Mon Apr 05 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-date.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\message-address.c | Sun Apr 04 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\mbox-from.c | Fri Mar 26 07:16:36 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\istream-header-filter.c | Tue Jun 01 19:00:04 2010
C:\Code\SAMATE\SATE2010\dovecot-2.0.beta6.20100626\dovecot-2.0.beta6\src\lib-mail\istream-dot.c | Fri Mar 26 07:16:36 2010

#### Global Basic Information

Number of procedures: | 212
Number of locally uncalled procedures: | 10
Maximum loop depth: | 3
Total Cyclomatic Complexity: | 1229
Number of reformatted executable lines: | 10823
Number of lines of comments: | 19215

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

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
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
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 | message-header-parser.h: 66 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | message-parser.h: 98 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C
M | message-parser.h: 116 | Macro parameter not in brackets. | CERT PRE01-C,PRE02-C

Code | File: Src Line | Violation | Standard
--- | --- | --- | ---
M | istream-header-filter.h: 33 | Macro parameter not in brackets. | CERT PRE01-C,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 | rfc822-parser.c: 35 | Declaration types do not match across a system. : rfc822_atext_chars | CERT ARR31-C
| 13 (rfc822-parser.h) |  |
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-message-header-parser.c: 48 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 47 |  |
M | test-message-header-parser.c: 57 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 56 |  |
M | test-message-header-parser.c: 72 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 71 |  |
M | test-message-header-parser.c: 81 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 80 |  |
M | test-message-header-parser.c: 100 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 99 |  |
M | test-message-header-parser.c: 118 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 117 |  |

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

i_stream_dot_read_some (24 to 50 istream-dot.c) - FAIL

#### Standards Violation Summary

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

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

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
istream-dot.c | 27 | istream-dot.c | 30 | size

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

flush_pending (52 to 64 istream-dot.c) - FAIL

#### Standards Violation Summary

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

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

i_stream_dot_read (107 to 212 istream-dot.c) - FAIL

#### Standards Violation Summary

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

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

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
istream-dot.c | 112 | istream-dot.c | 141 | size

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

i_stream_create_dot (220 to 239 istream-dot.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 225 | Pointer not checked for null before use : dstream | CERT EXP08-C,EXP34-C
| 224 |  |
M | 224 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 458) |  |

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

array_create_i (93 to 101 array.h analysed in istream-header-filter.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 | ]

read_mixed (54 to 87 istream-header-filter.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 79 | Pointer not checked for null before use : data | CERT EXP08-C,EXP34-C
| 76 |  |
M | 58 | Procedure contains UR data flow anomalies. : pos | CERT EXP33-C
| 66 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
istream-header-filter.c | 58 | istream-header-filter.c | 66 | pos

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

read_header (112 to 274 istream-header-filter.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 122 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 181 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 180 |  |
M | 181 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 180 |  |
M | 270 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 249 |  |
M | 118 | Procedure contains UR data flow anomalies. : matched | CERT EXP33-C
| 253 |  |
M | 116 | Procedure contains UR data flow anomalies. : pos | CERT EXP33-C
| 236 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
istream-header-filter.c | 118 | istream-header-filter.c | 253 | matched
istream-header-filter.c | 116 | istream-header-filter.c | 236 | pos

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

skip_header (321 to 339 istream-header-filter.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 323 | Procedure contains UR data flow anomalies. : pos | CERT EXP33-C
| 336 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
istream-header-filter.c | 323 | istream-header-filter.c | 336 | pos

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

i_stream_header_filter_seek (350 to 388 istream-header-filter.c) - FAIL

#### Standards Violation Summary

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

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

i_stream_header_filter_stat (396 to 417 istream-header-filter.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 406 | Local structure returned in function result : st |

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

i_stream_create_header_filter (420 to 462 istream-header-filter.c) - FAIL

#### Standards Violation Summary

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

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

mbox_from_parse (54 to 246 mbox-from.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 108 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 105 |  |
M | 113 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 111 |  |
M | 118 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 116 |  |
M | 126 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 124 |  |
M | 130 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 128 |  |
M | 162 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 159 |  |
M | 170 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 169 |  |
M | 241 | Pointer not checked for null before use : time_r | CERT EXP08-C,EXP34-C
| 240 |  |
M | 156 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 132 |  |
M | 190 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 173 |  |
M | 214 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 200 |  |
M | 225 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 216 |  |
M | 177 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 173 |  |
M | 124 | Pointer not checked for null before use : msg | CERT EXP08-C,EXP34-C
| 120 |  |
M | 244 | Pointer not checked for null before use : msg_start | CERT EXP08-C,EXP34-C
| 66 |  |
M | 244 | Pointer not checked for null before use : sender_end | CERT EXP08-C,EXP34-C
| 88 |  |

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

mbox_from_create (248 to 300 mbox-from.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 255 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 254 |  |
M | 264 | Pointer not checked for null before use : tm | CERT EXP08-C,EXP34-C
| 261 |  |
M | 264 | Pointer not checked for null before use : weekdays | CERT EXP08-C,EXP34-C
| 13 |  |
M | 268 | Pointer not checked for null before use : months | CERT EXP08-C,EXP34-C
| 17 |  |

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

add_address (19 to 33 message-address.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 25 | Sizeof argument is a pointer. | CERT EXP01-C
M | 26 | Sizeof argument is a pointer. | CERT EXP01-C
M | 25 | Pointer not checked for null before use : addr | CERT EXP08-C,EXP34-C
| 23 |  |
M | 29 | Pointer not checked for null before use : addr | CERT EXP08-C,EXP34-C
| 25 |  |
M | 31 | Pointer not checked for null before use : addr | CERT EXP08-C,EXP34-C
| 25 |  |

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

parse_mailbox (190 to 207 message-address.c) - FAIL

#### Standards Violation Summary

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

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

parse_group (209 to 261 message-address.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 259 | Pointer not checked for null before use : ctx.first_addr | CERT EXP08-C,EXP34-C
| 229 |  |
M | 259 | Pointer not checked for null before use : ctx.last_addr | CERT EXP08-C,EXP34-C
| 229 |  |

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

parse_address (263 to 276 message-address.c) - FAIL

#### Standards Violation Summary

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

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

message_address_parse_real (303 to 322 message-address.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 321 | Local structure returned in function result : ctx |
M | 320 | Pointer not checked for null before use : ctx.str | CERT EXP08-C,EXP34-C
| 313 |  |
M | 320 | Pointer not checked for null before use : ctx.addr.domain | CERT EXP08-C,EXP34-C
| 309 |  |
M | 320 | Pointer not checked for null before use : ctx.addr.mailbox | CERT EXP08-C,EXP34-C
| 309 |  |
M | 320 | Pointer not checked for null before use : ctx.addr.route | CERT EXP08-C,EXP34-C
| 309 |  |
M | 320 | Pointer not checked for null before use : ctx.addr.name | CERT EXP08-C,EXP34-C
| 309 |  |
M | 320 | Pointer not checked for null before use : ctx.addr.next | CERT EXP08-C,EXP34-C
| 309 |  |
M | 320 | Pointer not checked for null before use : ctx.last_addr | CERT EXP08-C,EXP34-C
| 309 |  |
M | 320 | Pointer not checked for null before use : ctx.first_addr | CERT EXP08-C,EXP34-C
| 309 |  |
M | 320 | Pointer not checked for null before use : ctx.pool | CERT EXP08-C,EXP34-C
| 312 |  |

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

message_date_parser_tokens (109 to 231 message-date.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 228 | Pointer not checked for null before use : timezone_offset_r | CERT EXP08-C,EXP34-C
| 220 |  |
M | 184 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 181 |  |
M | 198 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 197 |  |
M | 200 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 197 |  |
M | 208 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 207 |  |
M | 210 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 207 |  |
M | 220 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 213 |  |
M | 182 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 181 |  |
M | 137 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 124 |  |
M | 152 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 148 |  |
M | 165 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 161 |  |

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

message_date_parse (233 to 248 message-date.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 241 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 243 | Pointer not checked for null before use : ctx.str | CERT EXP08-C,EXP34-C
| 242 |  |

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

message_date_create (250 to 272 message-date.c) - FAIL

#### Standards Violation Summary

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

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

message_decoder_init (51 to 62 message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 61 | Local structure returned in function result : ctx |
M | 57 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 56 |  |
M | 60 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 463) |  |

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

message_decoder_deinit (64 to 79 message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 77 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 76 |  |
M | 77 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 78 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 77 |  |
M | 78 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 78 | Pointer not checked for null before use : (ctx)->charset_trans_charset | CERT EXP08-C,EXP34-C
| 76 |  |
M | 78 | Pointer not checked for null before use : (ctx)->content_charset | CERT EXP08-C,EXP34-C
| 77 |  |

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

parse_content_transfer_encoding (81 to 112 message-decoder.c) - FAIL

#### Standards Violation Summary

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

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

parse_content_type (114 to 139 message-decoder.c) - FAIL

#### Standards Violation Summary

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

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

message_decode_body (250 to 365 message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 354 | Sizeof argument is a pointer. | CERT EXP01-C
M | 350 | Pointer not checked for null before use : data | CERT EXP08-C,EXP34-C
| 347 |  |
M | 318 | Pointer not checked for null before use : data | CERT EXP08-C,EXP34-C
| 269 |  |

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

message_decoder_decode_next_block (367 to 389 message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 380 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 373 |  |
M | 386 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 373 |  |
M | 380 | Pointer not checked for null before use : ctx.content_charset | CERT EXP08-C,EXP34-C
| 373 |  |

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

message_decoder_decode_reset (391 to 397 message-decoder.c) - FAIL

#### Standards Violation Summary

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

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

message_header_decode_encoded (11 to 57 message-header-decode.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 17 | Procedure contains UR data flow anomalies. : start_pos | CERT EXP33-C
| 32 |  |
M | 17 | Procedure contains UR data flow anomalies. : t | CERT EXP33-C
| 148 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-header-decode.c | 17 | message-header-decode.c | 32 | start_pos

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

message_header_decode (71 to 134 message-header-decode.c) - FAIL

#### Standards Violation Summary

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

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

decode_utf8_callback (143 to 181 message-header-decode.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 178 | Pointer not checked for null before use : t | CERT EXP08-C,EXP34-C
| 169 |  |
M | 148 | Procedure contains UR data flow anomalies. : t | CERT EXP33-C
| 169 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-header-decode.c | 17 | message-header-decode.c | 178 | t
message-header-decode.c | 148 | message-header-decode.c | 169 | t
message-header-decode.c | 148 | message-header-decode.c | 178 | t

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

message_header_decode_utf8 (183 to 194 message-header-decode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 193 | Local structure returned in function result : ctx |
M | 192 | Pointer not checked for null before use : ctx.dest | CERT EXP08-C,EXP34-C
| 190 |  |

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

message_header_encode_b (84 to 126 message-header-encode.c) - FAIL

#### Standards Violation Summary

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

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

message_header_encode (128 to 174 message-header-encode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 146 | Array Bound exceeded. | CERT ARR30-C
M | 146 | Array Bound exceeded. | CERT ARR30-C
M | 146 | Array Bound exceeded. | CERT ARR30-C

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

message_parse_header_init (25 to 41 message-header-parser.c) - FAIL

#### Standards Violation Summary

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

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

message_parse_header_deinit (43 to 53 message-header-parser.c) - FAIL

#### Standards Violation Summary

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

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

message_parse_header_next (55 to 373 message-header-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 310 | Array Bound exceeded. | CERT ARR30-C
M | 310 | Array Bound exceeded. | CERT ARR30-C
M | 267 | Procedure contains UR data flow anomalies. : ctx.value | CERT EXP33-C
M | 65 | Procedure contains UR data flow anomalies. : hdr | CERT EXP33-C
| 386 |  |
M | 359 | Procedure contains UR data flow anomalies. : hdr_ctx.full_value | CERT EXP33-C
M | 259 | Procedure contains UR data flow anomalies. : hdr_ctx.middle | CERT EXP33-C
M | 267 | Procedure contains UR data flow anomalies. : hdr_ctx.value | CERT EXP33-C
M | 59 | Procedure contains UR data flow anomalies. : msg | CERT EXP33-C
| 89 |  |
M | 60 | Procedure contains UR data flow anomalies. : size | CERT EXP33-C
| 89 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-header-parser.c | 267 | message-header-parser.c | 331 | ctx.value
message-header-parser.c | 59 | message-header-parser.c | 89 | msg
message-header-parser.c | 60 | message-header-parser.c | 89 | size

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

message_parse_header (381 to 397 message-header-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 393 | Pointer not checked for null before use : hdr_ctx | CERT EXP08-C,EXP34-C
| 389 |  |
M | 391 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 390 |  |
M | 386 | Procedure contains UR data flow anomalies. : hdr | CERT EXP33-C
| 390 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-header-parser.c | 386 | message-header-parser.c | 390 | hdr
message-header-parser.c | 65 | message-header-parser.c | 391 | hdr
message-header-parser.c | 386 | message-header-parser.c | 391 | hdr
message-header-parser.c | 359 | message-header-parser.c | 390 | hdr_ctx.full_value
message-header-parser.c | 259 | message-header-parser.c | 390 | hdr_ctx.middle
message-header-parser.c | 267 | message-header-parser.c | 390 | hdr_ctx.value

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

get_untokenized_msgid (8 to 42 message-id.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 13 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 40 | Pointer not checked for null before use : parser.data | CERT EXP08-C,EXP34-C
| 31 |  |

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

strip_lwsp (44 to 61 message-id.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 56 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 58 |  |
M | 60 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 56 |  |
M | 58 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 56 |  |

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

message_id_get_next (63 to 127 message-id.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 85 | Pointer not checked for null before use : msgid | CERT EXP08-C,EXP34-C
| 82 |  |
M | 120 | Pointer not checked for null before use : msgid_p | CERT EXP08-C,EXP34-C
| 113 |  |
M | 125 | Pointer not checked for null before use : msgid_p | CERT EXP08-C,EXP34-C
| 102 |  |
M | 75 | Pointer not checked for null before use : msgid | CERT EXP08-C,EXP34-C
| 80 |  |
M | 86 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 85 |  |
M | 120 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 118 |  |

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

message_part_append (150 to 170 message-parser.c) - FAIL

#### Standards Violation Summary

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

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

parse_next_body_multipart_init (172 to 185 message-parser.c) - FAIL

#### Standards Violation Summary

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

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

boundary_line_find (194 to 240 message-parser.c) - FAIL

#### Standards Violation Summary

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

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

parse_next_body_skip_boundary_line (251 to 278 message-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 273 | Pointer not checked for null before use : ctx.skip | CERT EXP08-C,EXP34-C
| 258 |  |

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

parse_next_body_to_boundary (321 to 404 message-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 341 | Pointer not checked for null before use : ctx.skip | CERT EXP08-C,EXP34-C
| 330 |  |

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

parse_next_body_to_eof (406 to 417 message-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 415 | Pointer not checked for null before use : (ctx)->skip | CERT EXP08-C,EXP34-C
| 412 |  |

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

parse_content_type (419 to 462 message-parser.c) - FAIL

#### Standards Violation Summary

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

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

parse_next_header (467 to 561 message-parser.c) - FAIL

#### Standards Violation Summary

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

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

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-parser.c | 472 | message-parser.c | 482 | size

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

preparsed_parse_next_header (658 to 692 message-parser.c) - FAIL

#### Standards Violation Summary

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

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

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-parser.c | 661 | message-parser.c | 665 | hdr
message-parser.c | 662 | message-parser.c | 667 | size

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

preparsed_parse_next_header_init (694 to 708 message-parser.c) - FAIL

#### Standards Violation Summary

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

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

message_parser_init (710 to 730 message-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 729 | Local structure returned in function result : ctx |
M | 719 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 718 |  |
M | 720 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 719 |  |

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

message_parser_init_from_parts (732 to 744 message-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 743 | Local structure returned in function result : ctx |
M | 740 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 741 | Pointer not checked for null before use : ctx | CERT EXP08-C,EXP34-C
| 740 |  |

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

message_parser_parse_header (799 to 821 message-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 808 | Pointer not checked for null before use : block.part | CERT EXP08-C,EXP34-C
| 807 |  |
M | 804 | Procedure contains UR data flow anomalies. : block.data | CERT EXP33-C
| 807 |  |
M | 804 | Procedure contains UR data flow anomalies. : block.hdr | CERT EXP33-C
| 808 |  |
M | 804 | Procedure contains UR data flow anomalies. : block.part | CERT EXP33-C
| 808 |  |
M | 804 | Procedure contains UR data flow anomalies. : block.size | CERT EXP33-C
| 807 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-parser.c | 804 | message-parser.c | 807 | block.data
message-parser.c | 804 | message-parser.c | 808 | block.hdr
message-parser.c | 804 | message-parser.c | 808 | block.part
message-parser.c | 804 | message-parser.c | 807 | block.size

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

message_parser_parse_body (824 to 836 message-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 833 | Pointer not checked for null before use : block.part | CERT EXP08-C,EXP34-C
| 831 |  |
M | 828 | Procedure contains UR data flow anomalies. : block.data | CERT EXP33-C
| 831 |  |
M | 828 | Procedure contains UR data flow anomalies. : block.hdr | CERT EXP33-C
| 833 |  |
M | 828 | Procedure contains UR data flow anomalies. : block.part | CERT EXP33-C
| 833 |  |
M | 828 | Procedure contains UR data flow anomalies. : block.size | CERT EXP33-C
| 831 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-parser.c | 828 | message-parser.c | 831 | block.data
message-parser.c | 828 | message-parser.c | 833 | block.hdr
message-parser.c | 828 | message-parser.c | 833 | block.part
message-parser.c | 828 | message-parser.c | 831 | block.size

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

part_serialize (42 to 98 message-part-serialize.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 52 | Sizeof argument is a pointer. | CERT EXP01-C
M | 56 | Sizeof argument is a pointer. | CERT EXP01-C
M | 59 | Sizeof argument is a pointer. | CERT EXP01-C
M | 61 | Sizeof argument is a pointer. | CERT EXP01-C
M | 63 | Sizeof argument is a pointer. | CERT EXP01-C
M | 65 | Sizeof argument is a pointer. | CERT EXP01-C
M | 70 | Sizeof argument is a pointer. | CERT EXP01-C

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

message_part_deserialize_part (118 to 240 message-part-serialize.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 137 | Sizeof argument is a pointer. | CERT EXP01-C
M | 143 | Sizeof argument is a pointer. | CERT EXP01-C
M | 153 | Sizeof argument is a pointer. | CERT EXP01-C
M | 157 | Sizeof argument is a pointer. | CERT EXP01-C
M | 167 | Sizeof argument is a pointer. | CERT EXP01-C
M | 171 | Sizeof argument is a pointer. | CERT EXP01-C
M | 177 | Sizeof argument is a pointer. | CERT EXP01-C
M | 238 | Pointer not checked for null before use : first_part | CERT EXP08-C,EXP34-C
| 129 |  |
M | 218 | Pointer not checked for null before use : ctx.data | CERT EXP08-C,EXP34-C
| 190 |  |
M | 135 | Pointer not checked for null before use : part | CERT EXP08-C,EXP34-C
| 134 |  |
M | 125 | Procedure contains UR data flow anomalies. : children_count | CERT EXP33-C
| 199 |  |
M | 129 | Procedure contains UR data flow anomalies. : first_part | CERT EXP33-C
| 124 |  |
M | 130 | Procedure contains UR data flow anomalies. : next_part | CERT EXP33-C
| 124 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-part-serialize.c | 125 | message-part-serialize.c | 199 | children_count
message-part-serialize.c | 129 | message-part-serialize.c | 238 | first_part
message-part-serialize.c | 130 | message-part-serialize.c | 233 | next_part

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

message_part_deserialize (242 to 265 message-part-serialize.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 255 | Pointer not checked for null before use : ctx.error | CERT EXP08-C,EXP34-C
| 254 |  |
M | 252 | Pointer not checked for null before use : ctx.data | CERT EXP08-C,EXP34-C
| 251 |  |
M | 254 | Pointer not checked for null before use : ctx.pool | CERT EXP08-C,EXP34-C
| 250 |  |
M | 254 | Pointer not checked for null before use : ctx.end | CERT EXP08-C,EXP34-C
| 252 |  |
M | 254 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 247 | Procedure contains UR data flow anomalies. : part | CERT EXP33-C
| 254 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-part-serialize.c | 247 | message-part-serialize.c | 254 | part

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

message_search_init_real (27 to 54 message-search.c) - FAIL

#### Standards Violation Summary

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

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

message_search_deinit (68 to 78 message-search.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 75 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 74 |  |
M | 76 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 75 |  |
M | 76 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 77 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 76 |  |
M | 77 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 77 | Pointer not checked for null before use : (ctx)->key | CERT EXP08-C,EXP34-C
| 75 |  |
M | 77 | Pointer not checked for null before use : (ctx)->key_charset | CERT EXP08-C,EXP34-C
| 76 |  |
M | 74 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| Ref. Line -1101 (Module 470) |  |

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

parse_content_type (80 to 95 message-search.c) - FAIL

#### Standards Violation Summary

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

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

message_search_more (140 to 186 message-search.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 176 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 149 |  |
M | 144 | Procedure contains UR data flow anomalies. : block.data | CERT EXP33-C
| 176 |  |
M | 144 | Procedure contains UR data flow anomalies. : block.hdr | CERT EXP33-C
| 179 |  |
M | 144 | Procedure contains UR data flow anomalies. : block.part | CERT EXP33-C
| 185 |  |
M | 144 | Procedure contains UR data flow anomalies. : block.size | CERT EXP33-C
| 185 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-search.c | 144 | message-search.c | 176 | block.data
message-search.c | 144 | message-search.c | 179 | block.hdr
message-search.c | 144 | message-search.c | 185 | block.part
message-search.c | 144 | message-search.c | 185 | block.size

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

message_search_msg_real (210 to 249 message-search.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 233 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 221 |  |
M | 243 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 233 |  |
M | 218 | Procedure contains UR data flow anomalies. : new_parts | CERT EXP33-C
| 243 |  |
M | 217 | Procedure contains UR data flow anomalies. : raw_block.data | CERT EXP33-C
| 231 |  |
M | 217 | Procedure contains UR data flow anomalies. : raw_block.hdr | CERT EXP33-C
| 233 |  |
M | 217 | Procedure contains UR data flow anomalies. : raw_block.part | CERT EXP33-C
| 233 |  |
M | 217 | Procedure contains UR data flow anomalies. : raw_block.size | CERT EXP33-C
| 231 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-search.c | 218 | message-search.c | 243 | new_parts
message-search.c | 217 | message-search.c | 231 | raw_block.data
message-search.c | 217 | message-search.c | 233 | raw_block.hdr
message-search.c | 217 | message-search.c | 233 | raw_block.part
message-search.c | 217 | message-search.c | 231 | raw_block.size

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

message_skip_virtual (10 to 70 message-send.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 14 | Procedure contains UR data flow anomalies. : msg | CERT EXP33-C
| 25 |  |
M | 15 | Procedure contains UR data flow anomalies. : size | CERT EXP33-C
| 25 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-send.c | 14 | message-send.c | 25 | msg
message-send.c | 15 | message-send.c | 25 | size

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

message_get_header_size (8 to 65 message-size.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 60 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 15 |  |
M | 11 | Procedure contains UR data flow anomalies. : msg | CERT EXP33-C
| 20 |  |
M | 12 | Procedure contains UR data flow anomalies. : size | CERT EXP33-C
| 20 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-size.c | 11 | message-size.c | 20 | msg
message-size.c | 12 | message-size.c | 20 | size

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

message_get_body_size (67 to 118 message-size.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 107 | Pointer not checked for null before use : body | CERT EXP08-C,EXP34-C
| 74 |  |
M | 70 | Procedure contains UR data flow anomalies. : msg | CERT EXP33-C
| 79 |  |
M | 71 | Procedure contains UR data flow anomalies. : size | CERT EXP33-C
| 79 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
message-size.c | 70 | message-size.c | 79 | msg
message-size.c | 71 | message-size.c | 79 | size

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

quoted_printable_decode (11 to 84 quoted-printable.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 27 | Array Bound exceeded. | CERT ARR30-C

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

rfc2231_parse (40 to 172 rfc2231-parser.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 : rfc2231_param.value | CERT EXP08-C,EXP34-C
| 89 |  |
M | 90 | Pointer not checked for null before use : rfc2231_param.key | CERT EXP08-C,EXP34-C
| 88 |  |
M | 166 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 164 |  |
M | 163 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 161 |  |
M | 165 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 163 |  |
M | 142 | Pointer not checked for null before use : key | CERT EXP08-C,EXP34-C
| 137 |  |
M | 96 | Pointer not checked for null before use : value | CERT EXP08-C,EXP34-C
| 59 |  |
M | 74 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 72 |  |
M | 85 | Pointer not checked for null before use : p | CERT EXP08-C,EXP34-C
| 83 |  |
M | 88 | Pointer not checked for null before use : p2 | CERT EXP08-C,EXP34-C
| 70 |  |
M | 148 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 115 |  |
M | 90 | Pointer not checked for null before use : (arr)->buffer | CERT EXP08-C,EXP34-C
| 58 |  |
M | 90 | Pointer not checked for null before use : (arr)->element_size | CERT EXP08-C,EXP34-C
| 58 |  |
M | 43 | Procedure contains UR data flow anomalies. : result.arr.buffer | CERT EXP33-C
| 102 |  |
M | 43 | Procedure contains UR data flow anomalies. : result.arr.element_size | CERT EXP33-C
| 102 |  |
M | 44 | Procedure contains UR data flow anomalies. : rfc2231_params_arr.arr.buffer | CERT EXP33-C
| 110 |  |
M | 44 | Procedure contains UR data flow anomalies. : rfc2231_params_arr.arr.element_size | CERT EXP33-C
| 110 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
rfc2231-parser.c | 43 | rfc2231-parser.c | 102 | result.arr.buffer
rfc2231-parser.c | 43 | rfc2231-parser.c | 102 | result.arr.element_size
rfc2231-parser.c | 44 | rfc2231-parser.c | 110 | rfc2231_params_arr.arr.buffer
rfc2231-parser.c | 44 | rfc2231-parser.c | 110 | rfc2231_params_arr.arr.element_size

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

rfc822_parser_init (54 to 62 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

rfc822_skip_comment (64 to 106 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

rfc822_parse_atom (126 to 148 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

rfc822_parse_dot_atom (150 to 189 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

rfc822_parse_mime_token (191 to 205 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

rfc822_parse_quoted_string (207 to 242 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

rfc822_parse_atom_or_dot (244 to 267 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

rfc822_parse_domain_literal (301 to 330 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

rfc822_parse_content_param (372 to 418 rfc822-parser.c) - FAIL

#### Standards Violation Summary

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

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

test_istream_dot_one (15 to 102 test-istream-dot.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 27 | Pointer not checked for null before use : test_input | CERT EXP08-C,EXP34-C
| 26 |  |
M | 46 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 27 |  |
M | 91 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 43 |  |
M | 20 | Procedure contains UR data flow anomalies. : size | CERT EXP33-C
| 68 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
test-istream-dot.c | 20 | test-istream-dot.c | 68 | size

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

test_istream_dot (104 to 125 test-istream-dot.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 104 | Procedure not called in code analysed : test_istream_dot |

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

test_istream_filter (18 to 65 test-istream-header-filter.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 31 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 36 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 42 | Pointer not checked for null before use : filter2 | CERT EXP08-C,EXP34-C
| 36 |  |
M | 36 | Pointer not checked for null before use : filter | CERT EXP08-C,EXP34-C
| 31 |  |
M | 27 | Procedure contains UR data flow anomalies. : size | CERT EXP33-C
| 52 |  |
C | 18 | Procedure not called in code analysed : test_istream_filter |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
test-istream-header-filter.c | 27 | test-istream-header-filter.c | 52 | size

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

test_mbox_from_parse (17 to 81 test-mbox-from.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 61 | Sizeof argument is a pointer. | CERT EXP01-C
M | 69 | free parameter is not heap item. | CERT MEM34-C
M | 76 | Pointer not checked for null before use : tm | CERT EXP08-C,EXP34-C
| 75 |  |
M | 62 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 63 |  |
M | 69 | Pointer not checked for null before use : sender | CERT EXP08-C,EXP34-C
| 63 |  |
M | 68 | Pointer not checked for null before use : sender | CERT EXP08-C,EXP34-C
| 63 |  |
M | 69 | Attempt to read from freed memory. : default_pool | CERT MEM30-C
M | 69 | Attempt to read from freed memory. : sender | CERT MEM30-C
M | 58 | Procedure contains UR data flow anomalies. : tz | CERT EXP33-C
| 67 |  |
C | 17 | Procedure not called in code analysed : test_mbox_from_parse |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
test-mbox-from.c | 58 | test-mbox-from.c | 67 | tz

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

test_mbox_from_create (83 to 93 test-mbox-from.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 83 | Procedure not called in code analysed : test_mbox_from_create |

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

test_message_address (18 to 112 test-message-address.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 55 | Sizeof argument is a pointer. | CERT EXP01-C
M | 60 | Pointer not checked for null before use : group | CERT EXP08-C,EXP34-C
| 59 |  |
M | 70 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 58 |  |
M | 74 | Pointer not checked for null before use : wanted_string | CERT EXP08-C,EXP34-C
| 72 |  |
C | 18 | Procedure not called in code analysed : test_message_address |

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

test_message_date_parse (13 to 57 test-message-date.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 49 | Sizeof argument is a pointer. | CERT EXP01-C
M | 45 | Procedure contains UR data flow anomalies. : t | CERT EXP33-C
| 53 |  |
M | 46 | Procedure contains UR data flow anomalies. : tz | CERT EXP33-C
| 54 |  |
C | 13 | Procedure not called in code analysed : test_message_date_parse |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
test-message-date.c | 45 | test-message-date.c | 53 | t
test-message-date.c | 46 | test-message-date.c | 54 | tz

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

message_header_decode_utf8 (12 to 17 test-message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 12 | Procedure not called in code analysed : message_header_decode_utf8 |

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

quoted_printable_decode (19 to 26 test-message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 19 | Procedure not called in code analysed : quoted_printable_decode |

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

charset_to_utf8_begin (28 to 34 test-message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 28 | Procedure not called in code analysed : charset_to_utf8_begin |

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

charset_to_utf8_end (35 to 35 test-message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 35 | Procedure not called in code analysed : charset_to_utf8_end |

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

charset_is_utf8 (36 to 36 test-message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 36 | Procedure not called in code analysed : charset_is_utf8 |

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

charset_to_utf8 (38 to 44 test-message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 38 | Procedure not called in code analysed : charset_to_utf8 |

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

test_message_decoder (46 to 91 test-message-decoder.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 68 | Pointer not checked for null before use : input.data | CERT EXP08-C,EXP34-C
| 56 |  |
M | 68 | Pointer not checked for null before use : output.data | CERT EXP08-C,EXP34-C
| 57 |  |
M | 71 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 68 |  |
M | 74 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 71 |  |
M | 78 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 74 |  |
M | 88 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 84 |  |
M | 84 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 78 |  |
C | 46 | Procedure not called in code analysed : test_message_decoder |

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

charset_is_utf8 (10 to 10 test-message-header-decode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 10 | Procedure not called in code analysed : charset_is_utf8 |

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

charset_to_utf8_begin (12 to 14 test-message-header-decode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 12 | Procedure not called in code analysed : charset_to_utf8_begin |

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

charset_to_utf8_end (15 to 15 test-message-header-decode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 15 | Procedure not called in code analysed : charset_to_utf8_end |

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

charset_to_utf8 (17 to 23 test-message-header-decode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
C | 17 | Procedure not called in code analysed : charset_to_utf8 |

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

test_message_header_decode (25 to 49 test-message-header-decode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 41 | Sizeof argument is a pointer. | CERT EXP01-C
M | 42 | Pointer not checked for null before use : dest | CERT EXP08-C,EXP34-C
| 40 |  |
C | 25 | Procedure not called in code analysed : test_message_header_decode |

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

test_message_header_encode_q (50 to 75 test-message-header-encode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 58 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 52 |  |
M | 63 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 53 |  |
C | 50 | Procedure not called in code analysed : test_message_header_encode_q |

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

verify_b (77 to 134 test-message-header-encode.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 81 | Procedure contains UR data flow anomalies. : buf.data | CERT EXP33-C
| 83 |  |
M | 81 | Procedure contains UR data flow anomalies. : buf.priv | CERT EXP33-C
| 83 |  |
M | 81 | Procedure contains UR data flow anomalies. : buf.used | CERT EXP33-C
| 83 |  |
M | 80 | Procedure contains UR data flow anomalies. : bufdata | CERT EXP33-C
| 83 |  |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
test-message-header-encode.c | 81 | test-message-header-encode.c | 83 | buf.data
test-message-header-encode.c | 81 | test-message-header-encode.c | 83 | buf.priv
test-message-header-encode.c | 81 | test-message-header-encode.c | 83 | buf.used
test-message-header-encode.c | 80 | test-message-header-encode.c | 83 | bufdata

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

test_message_header_encode_b (136 to 161 test-message-header-encode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 144 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 138 |  |
M | 149 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 139 |  |
C | 136 | Procedure not called in code analysed : test_message_header_encode_b |

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

test_message_header_encode (163 to 182 test-message-header-encode.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 176 | Sizeof argument is a pointer. | CERT EXP01-C
M | 177 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 172 |  |
C | 163 | Procedure not called in code analysed : test_message_header_encode |

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

test_message_header_parser_one (21 to 35 test-message-header-parser.c) - FAIL

#### Standards Violation Summary

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

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

test_message_header_parser (126 to 151 test-message-header-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 143 | Pointer not checked for null before use : parser | CERT EXP08-C,EXP34-C
| 142 |  |
M | 141 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 138 |  |
M | 142 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 144 |  |
M | 134 | Procedure contains UR data flow anomalies. : hdr_size.lines | CERT EXP33-C
| 142 |  |
M | 134 | Procedure contains UR data flow anomalies. : hdr_size.physical_size | CERT EXP33-C
| 142 |  |
M | 134 | Procedure contains UR data flow anomalies. : hdr_size.virtual_size | CERT EXP33-C
| 142 |  |
C | 126 | Procedure not called in code analysed : test_message_header_parser |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
test-message-header-parser.c | 134 | test-message-header-parser.c | 142 | hdr_size.lines
test-message-header-parser.c | 134 | test-message-header-parser.c | 142 | hdr_size.physical_size
test-message-header-parser.c | 134 | test-message-header-parser.c | 142 | hdr_size.virtual_size

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

test_message_header_parser_partial (167 to 195 test-message-header-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 178 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 177 |  |
M | 181 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
M | 189 | Pointer not checked for null before use : parser | CERT EXP08-C,EXP34-C
| 181 |  |
M | 185 | Pointer not checked for null before use : hdr | CERT EXP08-C,EXP34-C
| 184 |  |
M | 191 | Pointer not checked for null before use : str | CERT EXP08-C,EXP34-C
| 180 |  |
C | 167 | Procedure not called in code analysed : test_message_header_parser_partial |

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

test_message_header_parser_long_lines_str (197 to 217 test-message-header-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 208 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 207 |  |
M | 215 | Pointer not checked for null before use : parser | CERT EXP08-C,EXP34-C
| 210 |  |

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

test_message_header_parser_long_lines (219 to 240 test-message-header-parser.c) - FAIL

#### Standards Violation Summary

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

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 235 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 229 |  |
M | 223 | Procedure contains UR data flow anomalies. : hdr_size.lines | CERT EXP33-C
| 229 |  |
M | 223 | Procedure contains UR data flow anomalies. : hdr_size.physical_size | CERT EXP33-C
| 229 |  |
M | 223 | Procedure contains UR data flow anomalies. : hdr_size.virtual_size | CERT EXP33-C
| 229 |  |
C | 219 | Procedure not called in code analysed : test_message_header_parser_long_lines |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
test-message-header-parser.c | 223 | test-message-header-parser.c | 229 | hdr_size.lines
test-message-header-parser.c | 223 | test-message-header-parser.c | 229 | hdr_size.physical_size
test-message-header-parser.c | 223 | test-message-header-parser.c | 229 | hdr_size.virtual_size

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

test_message_id_get_next (7 to 34 test-message-id.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 23 | Sizeof argument is a pointer. | CERT EXP01-C
M | 32 | Sizeof argument is a pointer. | CERT EXP01-C
M | 25 | Pointer not checked for null before use : msgid | CERT EXP08-C,EXP34-C
| 24 |  |
C | 7 | Procedure not called in code analysed : test_message_id_get_next |

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

test_message_parser_small_blocks (70 to 129 test-message-parser.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 : parts | CERT EXP08-C,EXP34-C
| 88 |  |
M | 104 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 88 |  |
M | 123 | Pointer not checked for null before use : default_pool | CERT EXP08-C,EXP34-C
| 104 |  |
M | 124 | Pointer not checked for null before use : (parts2)->children | CERT EXP08-C,EXP34-C
| 105 |  |
M | 85 | Pointer not checked for null before use : pool | CERT EXP08-C,EXP34-C
| 81 |  |
M | 85 | Pointer not checked for null before use : input | CERT EXP08-C,EXP34-C
| 82 |  |
M | 75 | Procedure contains UR data flow anomalies. : block.size | CERT EXP33-C
| 86 |  |
M | 75 | Procedure contains UR data flow anomalies. : block.data | CERT EXP33-C
| 86 |  |
C | 70 | Procedure not called in code analysed : test_message_parser_small_blocks |

#### Possible UR Anomalies

The following variables may be referenced before being given a value

File | Undefine | File | Reference | Variable
--- | --- | --- | --- | ---
test-message-parser.c | 75 | test-message-parser.c | 86 | block.size
test-message-parser.c | 75 | test-message-parser.c | 86 | block.data

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

test_quoted_printable_decode (15 to 60 test-quoted-printable.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 39 | Pointer not checked for null before use : buf | CERT EXP08-C,EXP34-C
| 36 |  |
C | 15 | Procedure not called in code analysed : test_quoted_printable_decode |

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

test_quoted_printable_q_decode (62 to 84 test-quoted-printable.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 77 | Sizeof argument is a pointer. | CERT EXP01-C
M | 78 | Pointer not checked for null before use : buf | CERT EXP08-C,EXP34-C
| 76 |  |
C | 62 | Procedure not called in code analysed : test_quoted_printable_q_decode |

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

test_rfc2231_parser (8 to 41 test-rfc2231-parser.c) - FAIL

#### Standards Violation Summary

Code | Line | Violation | Standard
--- | --- | --- | ---
M | 35 | Pointer not checked for null before use : NULL | CERT EXP08-C,EXP34-C
C | 8 | Procedure not called in code analysed : test_rfc2231_parser |

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

### End of Code Review Report

###

### Copyright © 2010 Liverpool Data Research Associates