Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86f8fe4d authored by Alina Kalyakina's avatar Alina Kalyakina
Browse files

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
parent da62cb20
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -196,8 +196,8 @@ 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");
        return BAD_VALUE;
@@ -248,8 +248,8 @@ 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");
        return BAD_VALUE;
@@ -277,8 +277,8 @@ 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");
        return BAD_VALUE;