Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coverity Scan fixes #121

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Coverity Scan fixes #121

wants to merge 4 commits into from

Conversation

tpopela
Copy link
Contributor

@tpopela tpopela commented Oct 12, 2018

The Coverity Scan was ran against 1.0.2.

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/font.cc:88: error[uninitStructMember]: Uninitialized struct member: table.flavor

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/font.cc:88: error[uninitStructMember]: Uninitialized struct member: table.num_tables

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.checksum

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.data

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.dst_data

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.dst_length

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.dst_offset

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.flag_byte

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.length

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.offset

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.reuse_of

Error: CPPCHECK_WARNING (CWE-909):
woff2-1.0.2/src/woff2_enc.cc:349: error[uninitStructMember]: Uninitialized struct member: table.src_offset
Error: COMPILER_WARNING:
woff2-1.0.2/src/font.cc: scope_hint: In function 'int woff2::NumGlyphs(const woff2::Font&)'
woff2-1.0.2/src/font.cc:330:26: warning: comparison of integer expressions of different signedness: 'const uint32_t' {aka 'const unsigned int'} and 'int' [-Wsign-compare]
   if (loca_table->length < loca_record_size) {
       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
  328|     int index_fmt = IndexFormat(font);
  329|     int loca_record_size = (index_fmt == 0 ? 2 : 4);
  330|->   if (loca_table->length < loca_record_size) {
  331|       return 0;
  332|     }

Error: COMPILER_WARNING:
woff2-1.0.2/src/normalize.cc:15: included_from: Included from here.
woff2-1.0.2/src/normalize.cc: scope_hint: In function 'bool woff2::{anonymous}::MakeEditableBuffer(woff2::Font*, int)'
woff2-1.0.2/src/normalize.cc:100:24: warning: comparison of integer expressions of different signedness: 'int' and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare]
   if (PREDICT_FALSE(sz > table->length)) {
                     ~~~^~~~~~~~~~~~~~~
woff2-1.0.2/src/port.h:48:44: note: in definition of macro 'PREDICT_FALSE'
 #define PREDICT_FALSE(x) (__builtin_expect(x, 0))
                                            ^
   98|     uint8_t* buf = &table->buffer[0];
   99|     memcpy(buf, table->data, table->length);
  100|->   if (PREDICT_FALSE(sz > table->length)) {
  101|       memset(buf + table->length, 0, sz - table->length);
  102|     }

Error: COMPILER_WARNING:
woff2-1.0.2/src/woff2_info.cc: scope_hint: In function 'int main(int, char**)'
woff2-1.0.2/src/woff2_info.cc:125:24: warning: comparison of integer expressions of different signedness: 'int' and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare]
     for (auto i = 0; i < numFonts; i++) {
                      ~~^~~~~~~~~~
  123|       printf("CollectionHeader 0x%08x %d fonts\n", version, numFonts);
  124|
  125|->     for (auto i = 0; i < numFonts; i++) {
  126|         uint32_t numTables, flavor;
  127|         if (!woff2::Read255UShort(&file, &numTables)) return 1;

Error: COMPILER_WARNING:
woff2-1.0.2/src/woff2_info.cc:131:26: warning: comparison of integer expressions of different signedness: 'int' and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare]
       for (auto j = 0; j < numTables; j++) {
                        ~~^~~~~~~~~~~
  129|         printf("CollectionFontEntry %d flavor 0x%08x %d tables\n", i, flavor,
  130|             numTables);
  131|->       for (auto j = 0; j < numTables; j++) {
  132|           uint32_t table_idx;
  133|           if (!woff2::Read255UShort(&file, &table_idx)) return 1;
Error: UNINIT_CTOR (CWE-456):
woff2-1.0.2/src/glyph.h:28: member_decl: Class member declaration for "x_min".
woff2-1.0.2/src/glyph.h:25: uninit_member: Non-static class member "x_min" is not initialized in this constructor nor in any functions that it calls.
woff2-1.0.2/src/glyph.h:29: member_decl: Class member declaration for "x_max".
woff2-1.0.2/src/glyph.h:25: uninit_member: Non-static class member "x_max" is not initialized in this constructor nor in any functions that it calls.
woff2-1.0.2/src/glyph.h:30: member_decl: Class member declaration for "y_min".
woff2-1.0.2/src/glyph.h:25: uninit_member: Non-static class member "y_min" is not initialized in this constructor nor in any functions that it calls.
woff2-1.0.2/src/glyph.h:31: member_decl: Class member declaration for "y_max".
woff2-1.0.2/src/glyph.h:25: uninit_member: Non-static class member "y_max" is not initialized in this constructor nor in any functions that it calls.
woff2-1.0.2/src/glyph.h:35: member_decl: Class member declaration for "instructions_data".
woff2-1.0.2/src/glyph.h:25: uninit_member: Non-static class member "instructions_data" is not initialized in this constructor nor in any functions that it calls.
woff2-1.0.2/src/glyph.h:46: member_decl: Class member declaration for "composite_data".
woff2-1.0.2/src/glyph.h:25: uninit_member: Non-static class member "composite_data" is not initialized in this constructor nor in any functions that it calls.
woff2-1.0.2/src/glyph.h:48: member_decl: Class member declaration for "have_instructions".
woff2-1.0.2/src/glyph.h:25: uninit_member: Non-static class member "have_instructions" is not initialized in this constructor nor in any functions that it calls.
   23|   class Glyph {
   24|    public:
   25|->   Glyph() : instructions_size(0), composite_data_size(0) {}
   26|
   27|     // Bounding box.
Error: COMPILER_WARNING:
woff2-1.0.2/src/normalize.cc: scope_hint: In function 'bool woff2::FixChecksums(woff2::Font*)'
woff2-1.0.2/src/normalize.cc:216:12: warning: variable 'head_checksum' set but not used [-Wunused-but-set-variable]
   uint32_t head_checksum = 0;
            ^~~~~~~~~~~~~
  214|     StoreU32(0, &offset, head_buf);
  215|     uint32_t file_checksum = 0;
  216|->   uint32_t head_checksum = 0;
  217|     for (auto& i : font->tables) {
  218|       Font::Table* table = &i.second;

Error: CLANG_WARNING:
woff2-1.0.2/src/normalize.cc:226:7: note: Value stored to 'head_checksum' is never read
      head_checksum = table->checksum;
      ^               ~~~~~~~~~~~~~~~
  224|
  225|       if (table->tag == kHeadTableTag) {
  226|->       head_checksum = table->checksum;
  227|       }
  228|     }

Error: CLANG_WARNING:
woff2-1.0.2/src/woff2_dec.cc:306:3: note: Value stored to 'offset' is never read
  offset = Store16(dst, offset, y_max);
  ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  304|     offset = Store16(dst, offset, y_min);
  305|     offset = Store16(dst, offset, x_max);
  306|->   offset = Store16(dst, offset, y_max);
  307|   }
  308|

Error: CLANG_WARNING:
woff2-1.0.2/src/woff2_enc.cc:339:22: note: Value stored to 'transformed_data' during its initialization is never read
      const uint8_t* transformed_data = src_table.data;
                     ^~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~
  337|         table.src_length = src_table.length;
  338|         table.transform_length = src_table.length;
  339|->       const uint8_t* transformed_data = src_table.data;
  340|         const Font::Table* transformed_table =
  341|             font.FindTable(src_table.tag ^ 0x80808080);

Error: COMPILER_WARNING:
woff2-1.0.2/src/woff2_enc.cc: scope_hint: In function 'bool woff2::ConvertTTFToWOFF2(const uint8_t*, size_t, uint8_t*, size_t*, const woff2::WOFF2Params&)'
woff2-1.0.2/src/woff2_enc.cc:339:22: warning: variable 'transformed_data' set but not used [-Wunused-but-set-variable]
       const uint8_t* transformed_data = src_table.data;
                      ^~~~~~~~~~~~~~~~
  337|         table.src_length = src_table.length;
  338|         table.transform_length = src_table.length;
  339|->       const uint8_t* transformed_data = src_table.data;
  340|         const Font::Table* transformed_table =
  341|             font.FindTable(src_table.tag ^ 0x80808080);

Error: CLANG_WARNING:
woff2-1.0.2/src/woff2_enc.cc:346:9: note: Value stored to 'transformed_data' is never read
        transformed_data = transformed_table->data;
        ^                  ~~~~~~~~~~~~~~~~~~~~~~~
  344|           table.flags |= kWoff2FlagsTransform;
  345|           table.transform_length = transformed_table->length;
  346|->         transformed_data = transformed_table->data;
  347|
  348|         }

Error: CLANG_WARNING:
woff2-1.0.2/src/woff2_enc.cc:426:18: note: Value stored to 'table_length' during its initialization is never read
        uint32_t table_length =
                 ^~~~~~~~~~~~
  424|           uint32_t table_offset =
  425|             table.IsReused() ? table.reuse_of->offset : table.offset;
  426|->         uint32_t table_length =
  427|             table.IsReused() ? table.reuse_of->length : table.length;
  428|           std::pair<uint32_t, uint32_t> tag_offset(table.tag, table_offset);

Error: COMPILER_WARNING:
woff2-1.0.2/src/woff2_enc.cc:426:18: warning: unused variable 'table_length' [-Wunused-variable]
         uint32_t table_length =
                  ^~~~~~~~~~~~
  424|           uint32_t table_offset =
  425|             table.IsReused() ? table.reuse_of->offset : table.offset;
  426|->         uint32_t table_length =
  427|             table.IsReused() ? table.reuse_of->length : table.length;
  428|           std::pair<uint32_t, uint32_t> tag_offset(table.tag, table_offset);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant