int z_decompress (void * arg, unsigned char * ibuf, int isize, unsigned char * obuf, int osize);
Because of patent problems, we return DECOMP_ERROR for errors found by inspecting the input data and for system problems, but DECOMP_FATALERROR for any errors which could possibly be said to be being detected ``after'' decompression. For DECOMP_ERROR, we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be infringing a patent of Motorola's if we do, so we take CCP down instead.
Given that the frame has the correct sequence number and a good FCS, errors such as invalid codes in the input most likely indicate a bug, so we return DECOMP_FATALERROR for them in order to turn off compression, even though they are detected by inspecting the input.