On Mon 28 May 2018 10:38:55 AM CEST, Kevin Wolf wrote: >> > + if (!refcount_cache_size_set) { >> > + *refcount_cache_size = MIN_REFCOUNT_CACHE_SIZE * >> > s->cluster_size; >> >> ...but in the else clause down here, we don't have the cast, and >> Coverity complains that we evaluate a 32-bit result and then put it >> in a 64-bit variable. Should this have the (uint64_t) cast as well ?
I suppose that's not because we put a 32-bit result in a 64-bit variable, but because it could theoretically overflow (if s->cluster_size > INT32_MAX / 4). > It's a false positive, MIN_REFCOUNT_CACHE_SIZE is 4 and > s->cluster_size is at most 2 MB, so this will never overflow. > > I guess we can change the code anyway to silence it? Same opinion here, no problem with adding a cast to silence the warning. Berto