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

Commit b9b2f55a authored by Kenny Root's avatar Kenny Root Committed by Android (Google) Code Review
Browse files

Merge "Give an 9-patch error on too many rows and columns"

parents b9ca362e 9e652a67
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -359,7 +359,7 @@ static status_t do_9patch(const char* imageName, image_info* image)

    const char* errorMsg = NULL;
    int errorPixel = -1;
    const char* errorEdge = "";
    const char* errorEdge = NULL;

    int colorIndex = 0;

@@ -463,6 +463,14 @@ static status_t do_9patch(const char* imageName, image_info* image)
    if (yDivs[numYDivs - 1] == H) {
        numRows--;
    }

    // Make sure the amount of rows and columns will fit in the number of
    // colors we can use in the 9-patch format.
    if (numRows * numCols > 0x7F) {
        errorMsg = "Too many rows and columns in 9-patch perimeter";
        goto getout;
    }

    numColors = numRows * numCols;
    image->info9Patch.numColors = numColors;
    image->info9Patch.colors = (uint32_t*)malloc(numColors * sizeof(uint32_t));
@@ -533,6 +541,7 @@ getout:
        fprintf(stderr,
            "ERROR: 9-patch image %s malformed.\n"
            "       %s.\n", imageName, errorMsg);
        if (errorEdge != NULL) {
            if (errorPixel >= 0) {
                fprintf(stderr,
                    "       Found at pixel #%d along %s edge.\n", errorPixel, errorEdge);
@@ -540,6 +549,7 @@ getout:
                fprintf(stderr,
                    "       Found along %s edge.\n", errorEdge);
            }
        }
        return UNKNOWN_ERROR;
    }
    return NO_ERROR;