On 11/10/2014 06:45 AM, Max Reitz wrote: > Add helper functions for getting and setting refcounts in a refcount > array for any possible refcount order, and choose the correct one during > refcount initialization. > > Signed-off-by: Max Reitz <mre...@redhat.com> > --- > block/qcow2-refcount.c | 143 > ++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 141 insertions(+), 2 deletions(-) >
> + > +static uint64_t get_refcount_ro6(const void *refcount_array, uint64_t index) > +{ > + return be64_to_cpu(((const uint64_t *)refcount_array)[index]); > +} Should this return int64_t and error out if the user ever exceeded 2**63 via image fuzzing? > + > +static void set_refcount_ro6(void *refcount_array, uint64_t index, > + uint64_t value) > +{ > + ((uint64_t *)refcount_array)[index] = cpu_to_be64(value); > +} Should this assert that value <= INT64_MAX, since that's what the rest of the code caps it to? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature