X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/6b22a6200e8f72d3260d292800a8786666623bfc..17f9e2fd09d973d39885348fee4906da3aa190ac:/wimboot/wimboot-2.7.3/src/xca.c diff --git a/wimboot/wimboot-2.7.3/src/xca.c b/wimboot/wimboot-2.7.3/src/xca.c index 52a691a..aaa030b 100644 --- a/wimboot/wimboot-2.7.3/src/xca.c +++ b/wimboot/wimboot-2.7.3/src/xca.c @@ -42,7 +42,7 @@ */ ssize_t xca_decompress ( const void *data, size_t len, void *buf ) { const void *src = data; - const void *end = ( src + len ); + const void *end = ( uint8_t * ) src + len; uint8_t *out = buf; size_t out_len = 0; size_t out_len_threshold = 0; @@ -67,11 +67,9 @@ ssize_t xca_decompress ( const void *data, size_t len, void *buf ) { /* Construct symbol lengths */ lengths = src; - src += sizeof ( *lengths ); + src = ( uint8_t * ) src + sizeof ( *lengths ); if ( src > end ) { - DBG ( "XCA too short to hold Huffman lengths " - "table at input offset %#zx\n", - ( src - data ) ); + DBG ( "XCA too short to hold Huffman lengths table.\n"); return -1; } for ( raw = 0 ; raw < XCA_CODES ; raw++ ) @@ -113,7 +111,7 @@ ssize_t xca_decompress ( const void *data, size_t len, void *buf ) { out_len++; } else if ( ( raw == XCA_END_MARKER ) && - ( src >= ( end - 1 ) ) ) { + ( (uint8_t *) src >= ( ( uint8_t * ) end - 1 ) ) ) { /* End marker symbol */ return out_len; @@ -157,6 +155,5 @@ ssize_t xca_decompress ( const void *data, size_t len, void *buf ) { } } - DBG ( "XCA input overrun at output length %#zx\n", out_len ); - return -1; + return out_len; }