qdev: Change Property::offset field to ptrdiff_t type
commit3b6ca4022d150ad273d4cd9556c2f4873389f965
authorIldar Isaev <ild@inbox.ru>
Wed, 4 Mar 2015 14:09:46 +0000 (4 17:09 +0300)
committerAndreas Färber <afaerber@suse.de>
Wed, 18 Nov 2015 20:11:55 +0000 (18 21:11 +0100)
treee419c8498dc1b70f648d22a8131c3b38c7917175
parent74fcbd22d20a2fbc1a47a7b00cce5bf98fd7be5f
qdev: Change Property::offset field to ptrdiff_t type

Property::offset field is calculated as a diff between two pointers:

  arrayprop->prop.offset = eltptr - (void *)dev;

If offset is declared as int, this subtraction can cause type overflow,
thus leading to failure of the subsequent assertion:

  assert(qdev_get_prop_ptr(dev, &arrayprop->prop) == eltptr);

So ptrdiff_t should be used instead.

Signed-off-by: Ildar Isaev <ild@inbox.ru>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
include/hw/qdev-core.h