diff options
author | 2024-07-18 16:00:47 +0000 | |
---|---|---|
committer | 2024-07-29 09:49:20 +0000 | |
commit | 86f8fe4d4b3512b4bc4d26ff9ae13f2cd003784f (patch) | |
tree | d91f49ce250f5014b04ca2198ab10f6f123dbc4f | |
parent | da62cb20839940ae274bf1c2307eec7721241a43 (diff) |
Reject usage == 0 in AHardwareBuffer_lock* functions
Usage flags must be a combination of AHARDWAREBUFFER_USAGE_CPU_* flags
Bug: 346894869
Flag: EXEMPT bugfix
Change-Id: I247ea504f1e31dd242cccaa5fbba08c9ad2a3135
-rw-r--r-- | libs/nativewindow/AHardwareBuffer.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/libs/nativewindow/AHardwareBuffer.cpp b/libs/nativewindow/AHardwareBuffer.cpp index dd78049b16..ca41346d46 100644 --- a/libs/nativewindow/AHardwareBuffer.cpp +++ b/libs/nativewindow/AHardwareBuffer.cpp @@ -196,10 +196,10 @@ int AHardwareBuffer_lockAndGetInfo(AHardwareBuffer* buffer, uint64_t usage, return BAD_VALUE; } - if (usage & ~(AHARDWAREBUFFER_USAGE_CPU_READ_MASK | - AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK)) { + if (usage & ~(AHARDWAREBUFFER_USAGE_CPU_READ_MASK | AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK) || + usage == 0) { ALOGE("Invalid usage flags passed to AHardwareBuffer_lock; only " - "AHARDWAREBUFFER_USAGE_CPU_* flags are allowed"); + "AHARDWAREBUFFER_USAGE_CPU_* flags are allowed"); return BAD_VALUE; } @@ -248,10 +248,10 @@ int AHardwareBuffer_lock(AHardwareBuffer* buffer, uint64_t usage, if (!buffer) return BAD_VALUE; - if (usage & ~(AHARDWAREBUFFER_USAGE_CPU_READ_MASK | - AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK)) { + if (usage & ~(AHARDWAREBUFFER_USAGE_CPU_READ_MASK | AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK) || + usage == 0) { ALOGE("Invalid usage flags passed to AHardwareBuffer_lock; only " - "AHARDWAREBUFFER_USAGE_CPU_* flags are allowed"); + "AHARDWAREBUFFER_USAGE_CPU_* flags are allowed"); return BAD_VALUE; } @@ -277,10 +277,10 @@ int AHardwareBuffer_lockPlanes(AHardwareBuffer* buffer, uint64_t usage, int32_t fence, const ARect* rect, AHardwareBuffer_Planes* outPlanes) { if (!buffer || !outPlanes) return BAD_VALUE; - if (usage & ~(AHARDWAREBUFFER_USAGE_CPU_READ_MASK | - AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK)) { + if (usage & ~(AHARDWAREBUFFER_USAGE_CPU_READ_MASK | AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK) || + usage == 0) { ALOGE("Invalid usage flags passed to AHardwareBuffer_lock; only " - " AHARDWAREBUFFER_USAGE_CPU_* flags are allowed"); + " AHARDWAREBUFFER_USAGE_CPU_* flags are allowed"); return BAD_VALUE; } |