8317331: Solaris build failed with "declaration can not follow a statement (E_DECLARATION_IN_CODE)"

Backport-of: 852276d1f833d49802693f2a5a82ba6eb2722de6
This commit is contained in:
Coleen Phillimore 2023-10-02 18:50:08 +00:00 committed by Henry Jen
parent fff750c99d
commit fac49b8375

View File

@ -1678,12 +1678,13 @@ static int instruction_length(unsigned char *iptr, unsigned char *end)
switch (instruction) {
case JVM_OPC_tableswitch: {
int *lpc = (int *)UCALIGN(iptr + 1);
int64_t low, high, index;
if (lpc + 2 >= (int *)end) {
return -1; /* do not read pass the end */
}
int64_t low = _ck_ntohl(lpc[1]);
int64_t high = _ck_ntohl(lpc[2]);
int64_t index = high - low;
low = _ck_ntohl(lpc[1]);
high = _ck_ntohl(lpc[2]);
index = high - low;
// The value of low must be less than or equal to high - i.e. index >= 0
if ((index < 0) || (index > 65535)) {
return -1; /* illegal */