kern_ctf: Use zlib's uncompress function for simpler code.
Reviewed by: markj, delphij MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D21531
This commit is contained in:
parent
fb640be4e9
commit
cb17f4a6bd
@ -244,7 +244,7 @@ link_elf_ctf_get(linker_file_t lf, linker_ctf_t *lc)
|
||||
|
||||
/* Check if decompression is required. */
|
||||
if (raw != NULL) {
|
||||
z_stream zs;
|
||||
uLongf destlen;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
@ -253,22 +253,12 @@ link_elf_ctf_get(linker_file_t lf, linker_ctf_t *lc)
|
||||
*/
|
||||
bcopy(ctf_hdr, ctftab, sizeof(ctf_hdr));
|
||||
|
||||
/* Initialise the zlib structure. */
|
||||
bzero(&zs, sizeof(zs));
|
||||
|
||||
if (inflateInit(&zs) != Z_OK) {
|
||||
error = EIO;
|
||||
goto out;
|
||||
}
|
||||
|
||||
zs.avail_in = shdr[i].sh_size - sizeof(ctf_hdr);
|
||||
zs.next_in = ((uint8_t *) raw) + sizeof(ctf_hdr);
|
||||
zs.avail_out = sz - sizeof(ctf_hdr);
|
||||
zs.next_out = ((uint8_t *) ctftab) + sizeof(ctf_hdr);
|
||||
ret = inflate(&zs, Z_FINISH);
|
||||
inflateEnd(&zs);
|
||||
if (ret != Z_STREAM_END) {
|
||||
printf("%s(%d): zlib inflate returned %d\n", __func__, __LINE__, ret);
|
||||
destlen = sz - sizeof(ctf_hdr);
|
||||
ret = uncompress(((uint8_t *) ctftab) + sizeof(ctf_hdr),
|
||||
&destlen, ((uint8_t *) raw) + sizeof(ctf_hdr),
|
||||
shdr[i].sh_size - sizeof(ctf_hdr));
|
||||
if (ret != Z_OK) {
|
||||
printf("%s(%d): zlib uncompress returned %d\n", __func__, __LINE__, ret);
|
||||
error = EIO;
|
||||
goto out;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user