Coverity flags (uint64_t)sc * (uint64_t)ps as a potential overflow.
Use MUL_SAFE which Coverity understands via __builtin_mul_overflow.
Physical page count times page size cannot realistically overflow
uint64_t, but this makes it provable to static analyzers.
CID#
1548042
Follow-up for
09bb6448ae221c09a00d1f4a9b45ce8535003319
assert(sc > 0);
ps = page_size();
- /* Silence static analyzers */
- assert((uint64_t) sc <= UINT64_MAX / (uint64_t) ps);
- mem = (uint64_t) sc * (uint64_t) ps;
+ /* Physical page count times page size cannot realistically overflow uint64_t,
+ * but use MUL_SAFE to make this obvious to static analyzers. */
+ assert_se(MUL_SAFE(&mem, (uint64_t) sc, (uint64_t) ps));
r = cg_get_root_path(&root);
if (r < 0) {