diff --git a/tools/edb2mt.cpp b/tools/edb2mt.cpp index 159b2c4fc..8ed992b95 100644 --- a/tools/edb2mt.cpp +++ b/tools/edb2mt.cpp @@ -206,12 +206,14 @@ static void read_col(libesedb_record_t *row, unsigned int x, throw az_error("EE-1014", err); } else if (is_lval) { ese_lval_ptr lv; + uint64_t dsize64 = 0; if (libesedb_record_get_long_value(row, x, &unique_tie(lv), &~unique_tie(err)) < 1) throw az_error("EE-1018", err); - if (libesedb_long_value_get_data_size(lv.get(), &dsize, &~unique_tie(err)) < 1) + if (libesedb_long_value_get_data_size(lv.get(), &dsize64, &~unique_tie(err)) < 1) throw az_error("EE-1019", err); - if (dsize == 0) + if (dsize64 == 0) return; + dsize = std::max(dsize64, static_cast(UINT32_MAX)); udata.resize(dsize); if (libesedb_long_value_get_data(lv.get(), TOU8(udata.data()), dsize, &~unique_tie(err)) < 1)