Skip to content

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