257{
270 static const unsigned short order[19] =
271 {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
272
273
277
278
289
290
292 switch (
state->mode) {
294
298 break;
299 }
304 case 0:
306 state->last ?
" (last)" :
""));
308 break;
309 case 1:
312 state->last ?
" (last)" :
""));
314 break;
315 case 2:
317 state->last ?
" (last)" :
""));
319 break;
320 case 3:
321 strm->msg = (
char *)
"invalid block type";
323 }
325 break;
326
328
331 if ((
hold & 0xffff) != ((
hold >> 16) ^ 0xffff)) {
332 strm->msg = (
char *)
"invalid stored block lengths";
334 break;
335 }
340
341
342 while (
state->length != 0) {
354 }
357 break;
358
360
368#ifndef PKZIP_BUG_WORKAROUND
370 strm->msg = (
char *)
"too many length or distance symbols";
372 break;
373 }
374#endif
376
377
383 }
384 while (
state->have < 19)
392 strm->msg = (
char *)
"invalid code lengths set";
394 break;
395 }
397
398
401 for (;;) {
403 if ((
unsigned)(here.
bits) <=
bits)
break;
405 }
409 }
410 else {
411 if (here.
val == 16) {
414 if (
state->have == 0) {
415 strm->msg = (
char *)
"invalid bit length repeat";
417 break;
418 }
422 }
423 else if (here.
val == 17) {
429 }
430 else {
436 }
438 strm->msg = (
char *)
"invalid bit length repeat";
440 break;
441 }
444 }
445 }
446
447
449
450
451 if (
state->lens[256] == 0) {
452 strm->msg = (
char *)
"invalid code -- missing end-of-block";
454 break;
455 }
456
457
458
459
466 strm->msg = (
char *)
"invalid literal/lengths set";
468 break;
469 }
475 strm->msg = (
char *)
"invalid distances set";
477 break;
478 }
481
482
484
491 break;
492 }
493
494
495 for (;;) {
497 if ((
unsigned)(here.
bits) <=
bits)
break;
499 }
500 if (here.
op && (here.
op & 0xf0) == 0) {
502 for (;;) {
507 }
509 }
512
513
516 "inflate: literal '%c'\n" :
517 "inflate: literal 0x%02x\n", here.
val));
522 break;
523 }
524
525
529 break;
530 }
531
532
534 strm->msg = (
char *)
"invalid literal/length code";
536 break;
537 }
538
539
541 if (
state->extra != 0) {
545 }
547
548
549 for (;;) {
551 if ((
unsigned)(here.
bits) <=
bits)
break;
553 }
554 if ((here.
op & 0xf0) == 0) {
556 for (;;) {
561 }
563 }
566 strm->msg = (
char *)
"invalid distance code";
568 break;
569 }
571
572
573 state->extra = (
unsigned)(here.
op) & 15;
574 if (
state->extra != 0) {
578 }
581 strm->msg = (
char *)
"invalid distance too far back";
583 break;
584 }
586
587
588 do {
594 }
595 else {
598 }
602 do {
605 }
while (
state->length != 0);
606 break;
607
609
611 goto inf_leave;
612
615 goto inf_leave;
616
617 default:
618
620 goto inf_leave;
621 }
622
623
624 inf_leave:
625 if (left < state->
wsize) {
629 }
633}
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
static void inflate_fast(z_streamp strm, unsigned start)
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
GLuint GLdouble GLdouble GLint GLint order
void fixedtables(struct inflate_state FAR *state)