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
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/font.cc
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ bool ReadTrueTypeFont(Buffer* file, const uint8_t* data, size_t len,

std::map<uint32_t, uint32_t> intervals;
for (uint16_t i = 0; i < font->num_tables; ++i) {
Font::Table table;
Font::Table table = {};
table.flag_byte = 0;
table.reuse_of = NULL;
if (!file->ReadU32(&table.tag) ||
Expand Down Expand Up @@ -326,7 +326,7 @@ int NumGlyphs(const Font& font) {
return 0;
}
int index_fmt = IndexFormat(font);
int loca_record_size = (index_fmt == 0 ? 2 : 4);
uint32_t loca_record_size = (index_fmt == 0 ? 2 : 4);
if (loca_table->length < loca_record_size) {
return 0;
}
Expand Down
20 changes: 10 additions & 10 deletions src/glyph.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ namespace woff2 {
// is around.
class Glyph {
public:
Glyph() : instructions_size(0), composite_data_size(0) {}
Glyph() {}

// Bounding box.
int16_t x_min;
int16_t x_max;
int16_t y_min;
int16_t y_max;
int16_t x_min = 0;
int16_t x_max = 0;
int16_t y_min = 0;
int16_t y_max = 0;

// Instructions.
uint16_t instructions_size;
const uint8_t* instructions_data;
uint16_t instructions_size = 0;
const uint8_t* instructions_data = 0;

// Data model for simple glyphs.
struct Point {
Expand All @@ -43,9 +43,9 @@ class Glyph {
std::vector<std::vector<Point> > contours;

// Data for composite glyphs.
const uint8_t* composite_data;
uint32_t composite_data_size;
bool have_instructions;
const uint8_t* composite_data = 0;
uint32_t composite_data_size = 0;
bool have_instructions = false;
};

// Parses the glyph from the given data. Returns false on parsing failure or
Expand Down
7 changes: 1 addition & 6 deletions src/normalize.cc
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ bool MakeEditableBuffer(Font* font, int tableTag) {
table->buffer.resize(sz);
uint8_t* buf = &table->buffer[0];
memcpy(buf, table->data, table->length);
if (PREDICT_FALSE(sz > table->length)) {
if (PREDICT_FALSE(static_cast<uint32_t>(sz) > table->length)) {
memset(buf + table->length, 0, sz - table->length);
}
table->data = buf;
Expand Down Expand Up @@ -213,18 +213,13 @@ bool FixChecksums(Font* font) {
size_t offset = 8;
StoreU32(0, &offset, head_buf);
uint32_t file_checksum = 0;
uint32_t head_checksum = 0;
for (auto& i : font->tables) {
Font::Table* table = &i.second;
if (table->IsReused()) {
table = table->reuse_of;
}
table->checksum = ComputeULongSum(table->data, table->length);
file_checksum += table->checksum;

if (table->tag == kHeadTableTag) {
head_checksum = table->checksum;
}
}

file_checksum += ComputeHeaderChecksum(*font);
Expand Down
2 changes: 1 addition & 1 deletion src/woff2_dec.cc
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ void ComputeBbox(unsigned int n_points, const Point* points, uint8_t* dst) {
offset = Store16(dst, offset, x_min);
offset = Store16(dst, offset, y_min);
offset = Store16(dst, offset, x_max);
offset = Store16(dst, offset, y_max);
Store16(dst, offset, y_max);
}


Expand Down
7 changes: 1 addition & 6 deletions src/woff2_enc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -331,20 +331,17 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
return false;
}

Table table;
Table table = {};
table.tag = src_table.tag;
table.flags = src_table.flag_byte;
table.src_length = src_table.length;
table.transform_length = src_table.length;
const uint8_t* transformed_data = src_table.data;
const Font::Table* transformed_table =
font.FindTable(src_table.tag ^ 0x80808080);
if (transformed_table != NULL) {
table.flags = transformed_table->flag_byte;
table.flags |= kWoff2FlagsTransform;
table.transform_length = transformed_table->length;
transformed_data = transformed_table->data;

}
tables.push_back(table);
}
Expand Down Expand Up @@ -423,8 +420,6 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
// for reused tables, only the original has an updated offset
uint32_t table_offset =
table.IsReused() ? table.reuse_of->offset : table.offset;
uint32_t table_length =
table.IsReused() ? table.reuse_of->length : table.length;
std::pair<uint32_t, uint32_t> tag_offset(table.tag, table_offset);
if (index_by_tag_offset.find(tag_offset) == index_by_tag_offset.end()) {
#ifdef FONT_COMPRESSION_BIN
Expand Down
4 changes: 2 additions & 2 deletions src/woff2_info.cc
Original file line number Diff line number Diff line change
Expand Up @@ -122,13 +122,13 @@ int main(int argc, char **argv) {
if (!woff2::Read255UShort(&file, &numFonts)) return 1;
printf("CollectionHeader 0x%08x %d fonts\n", version, numFonts);

for (auto i = 0; i < numFonts; i++) {
for (auto i = 0u; i < numFonts; i++) {
uint32_t numTables, flavor;
if (!woff2::Read255UShort(&file, &numTables)) return 1;
if (!file.ReadU32(&flavor)) return 1;
printf("CollectionFontEntry %d flavor 0x%08x %d tables\n", i, flavor,
numTables);
for (auto j = 0; j < numTables; j++) {
for (auto j = 0u; j < numTables; j++) {
uint32_t table_idx;
if (!woff2::Read255UShort(&file, &table_idx)) return 1;
if (table_idx >= table_tags.size()) return 1;
Expand Down