(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dtd_parse.c) |
| |
| 2012 | | | YY_BUFFER_STATE Dtd_Parse__scan_buffer (char * base, yy_size_t size ) |
| 2013 | | | { |
| 2014 | | | YY_BUFFER_STATE b; |
| 2015 | | | |
| 2016 | | | if ( size < 2 || |
| 2017 | | | base[size-2] != YY_END_OF_BUFFER_CHAR || |
| 2018 | | | base[size-1] != YY_END_OF_BUFFER_CHAR ) |
Redundant Condition
base[size - 1] != 0 always evaluates to true. This may be because: - There is a constant assignment to one or more of the variables involved.
- An earlier conditional statement has already ensured that base[size - 1] != 0 cannot be false.
- A crashing bug occurs on every path where base[size - 1] != 0 could have evaluated to false. Look for a preceding Null Pointer Dereference or Division By Zero warning.
|
|
| 2019 | | | |
| 2020 | | | return 0; |
| 2021 | | | |
| 2022 | | | b = (YY_BUFFER_STATE) Dtd_Parse_alloc(sizeof( struct yy_buffer_state ) ); |
| 2023 | | | if ( ! b ) |
| 2024 | | | YY_FATAL_ERROR( "out of dynamic memory in Dtd_Parse__scan_buffer()" ); |
| 2025 | | | |
| 2026 | | | b->yy_buf_size = size - 2; |
| 2027 | | | b->yy_buf_pos = b->yy_ch_buf = base; |
| 2028 | | | b->yy_is_our_buffer = 0; |
| 2029 | | | b->yy_input_file = 0; |
| 2030 | | | b->yy_n_chars = b->yy_buf_size; |
| 2031 | | | b->yy_is_interactive = 0; |
| 2032 | | | b->yy_at_bol = 1; |
| 2033 | | | b->yy_fill_buffer = 0; |
| 2034 | | | b->yy_buffer_status = YY_BUFFER_NEW; |
| 2035 | | | |
| 2036 | | | Dtd_Parse__switch_to_buffer(b ); |
| 2037 | | | |
| 2038 | | | return b; |
| 2039 | | | } |
| |