AArch64: Calculate private_handle_t's numInts
A constant sNumInts with a value of 6 was being assigned to the numInts attribute in the private_handle_t constructor, and was also used in the validate method. That constant value is appropriate for 32-bit systems but is not appropriate for a 64-bit system where uintptr_t used for base attribute will be 64-bit. sNumInts is now changed to a static inline function that calculates numInts. Change-Id: I482ddb5915c9ff55fb2e2a87887a0ec2dc2299ed Signed-off-by: Marcus Oakland <marcus.oakland@arm.com> Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
This commit is contained in:
parent
037335ebe8
commit
d2be74aa57
1 changed files with 5 additions and 3 deletions
|
@ -79,7 +79,9 @@ struct private_handle_t {
|
||||||
int pid;
|
int pid;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
static const int sNumInts = 6;
|
static inline int sNumInts() {
|
||||||
|
return (((sizeof(private_handle_t) - sizeof(native_handle_t))/sizeof(int)) - sNumFds);
|
||||||
|
}
|
||||||
static const int sNumFds = 1;
|
static const int sNumFds = 1;
|
||||||
static const int sMagic = 0x3141592;
|
static const int sMagic = 0x3141592;
|
||||||
|
|
||||||
|
@ -88,7 +90,7 @@ struct private_handle_t {
|
||||||
base(0), pid(getpid())
|
base(0), pid(getpid())
|
||||||
{
|
{
|
||||||
version = sizeof(native_handle);
|
version = sizeof(native_handle);
|
||||||
numInts = sNumInts;
|
numInts = sNumInts();
|
||||||
numFds = sNumFds;
|
numFds = sNumFds;
|
||||||
}
|
}
|
||||||
~private_handle_t() {
|
~private_handle_t() {
|
||||||
|
@ -98,7 +100,7 @@ struct private_handle_t {
|
||||||
static int validate(const native_handle* h) {
|
static int validate(const native_handle* h) {
|
||||||
const private_handle_t* hnd = (const private_handle_t*)h;
|
const private_handle_t* hnd = (const private_handle_t*)h;
|
||||||
if (!h || h->version != sizeof(native_handle) ||
|
if (!h || h->version != sizeof(native_handle) ||
|
||||||
h->numInts != sNumInts || h->numFds != sNumFds ||
|
h->numInts != sNumInts() || h->numFds != sNumFds ||
|
||||||
hnd->magic != sMagic)
|
hnd->magic != sMagic)
|
||||||
{
|
{
|
||||||
ALOGE("invalid gralloc handle (at %p)", h);
|
ALOGE("invalid gralloc handle (at %p)", h);
|
||||||
|
|
Loading…
Reference in a new issue