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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to