Skip to content

Commit

Permalink
Use SET_BAD macro in inflateBack.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmoinvaz committed Jun 2, 2021
1 parent 2c65dce commit 4eaf059
Showing 1 changed file with 12 additions and 24 deletions.
36 changes: 12 additions & 24 deletions infback.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
state->mode = TABLE;
break;
case 3:
strm->msg = (char *)"invalid block type";
state->mode = BAD;
SET_BAD("invalid block type");
}
DROPBITS(2);
break;
Expand All @@ -199,8 +198,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
BYTEBITS(); /* go to byte boundary */
NEEDBITS(32);
if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
strm->msg = (char *)"invalid stored block lengths";
state->mode = BAD;
SET_BAD("invalid stored block lengths");
break;
}
state->length = (uint16_t)hold;
Expand Down Expand Up @@ -236,8 +234,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
DROPBITS(4);
#ifndef PKZIP_BUG_WORKAROUND
if (state->nlen > 286 || state->ndist > 30) {
strm->msg = (char *)"too many length or distance symbols";
state->mode = BAD;
SET_BAD("too many length or distance symbols");
break;
}
#endif
Expand All @@ -257,8 +254,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
state->lenbits = 7;
ret = zng_inflate_table(CODES, state->lens, 19, &(state->next), &(state->lenbits), state->work);
if (ret) {
strm->msg = (char *)"invalid code lengths set";
state->mode = BAD;
SET_BAD("invalid code lengths set");
break;
}
Tracev((stderr, "inflate: code lengths ok\n"));
Expand All @@ -279,8 +275,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
NEEDBITS(here.bits + 2);
DROPBITS(here.bits);
if (state->have == 0) {
strm->msg = (char *)"invalid bit length repeat";
state->mode = BAD;
SET_BAD("invalid bit length repeat");
break;
}
len = state->lens[state->have - 1];
Expand All @@ -300,8 +295,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
DROPBITS(7);
}
if (state->have + copy > state->nlen + state->ndist) {
strm->msg = (char *)"invalid bit length repeat";
state->mode = BAD;
SET_BAD("invalid bit length repeat");
break;
}
while (copy) {
Expand All @@ -317,8 +311,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in

/* check for end-of-block code (better have one) */
if (state->lens[256] == 0) {
strm->msg = (char *)"invalid code -- missing end-of-block";
state->mode = BAD;
SET_BAD("invalid code -- missing end-of-block");
break;
}

Expand All @@ -330,17 +323,15 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
state->lenbits = 9;
ret = zng_inflate_table(LENS, state->lens, state->nlen, &(state->next), &(state->lenbits), state->work);
if (ret) {
strm->msg = (char *)"invalid literal/lengths set";
state->mode = BAD;
SET_BAD("invalid literal/lengths set");
break;
}
state->distcode = (const code *)(state->next);
state->distbits = 6;
ret = zng_inflate_table(DISTS, state->lens + state->nlen, state->ndist,
&(state->next), &(state->distbits), state->work);
if (ret) {
strm->msg = (char *)"invalid distances set";
state->mode = BAD;
SET_BAD("invalid distances set");
break;
}
Tracev((stderr, "inflate: codes ok\n"));
Expand Down Expand Up @@ -399,8 +390,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in

/* invalid code */
if (here.op & 64) {
strm->msg = (char *)"invalid literal/length code";
state->mode = BAD;
SET_BAD("invalid literal/length code");
break;
}

Expand Down Expand Up @@ -432,8 +422,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
}
DROPBITS(here.bits);
if (here.op & 64) {
strm->msg = (char *)"invalid distance code";
state->mode = BAD;
SET_BAD("invalid distance code");
break;
}
state->offset = here.val;
Expand All @@ -447,8 +436,7 @@ int32_t Z_EXPORT PREFIX(inflateBack)(PREFIX3(stream) *strm, in_func in, void *in
}
#ifdef INFLATE_STRICT
if (state->offset > state->wsize - (state->whave < state->wsize ? left : 0)) {
strm->msg = (char *)"invalid distance too far back";
state->mode = BAD;
SET_BAD("invalid distance too far back");
break;
}
#endif
Expand Down

0 comments on commit 4eaf059

Please sign in to comment.