aCaB 16 years ago
parent 303f7b3477
commit 58a839319a
  1. 2
      libclamav/fmap.c
  2. 4
      libclamav/ishield.c

@ -113,7 +113,7 @@ struct F_MAP *fmap(int fd, off_t offset, size_t len) {
return NULL; return NULL;
} }
pages = fmap_align_items(len, pgsz); pages = fmap_align_items(len, pgsz);
hdrsz = fmap_align_to(sizeof(struct F_MAP) + pages * sizeof(uint16_t), 16); hdrsz = fmap_align_to(sizeof(struct F_MAP) + pages * sizeof(uint16_t), pgsz);
mapsz = pages * pgsz + hdrsz; mapsz = pages * pgsz + hdrsz;
if ((m = (struct F_MAP *)mmap(NULL, mapsz, PROT_READ | PROT_WRITE, MAP_PRIVATE|ANONYMOUS_MAP, -1, 0)) == MAP_FAILED) { if ((m = (struct F_MAP *)mmap(NULL, mapsz, PROT_READ | PROT_WRITE, MAP_PRIVATE|ANONYMOUS_MAP, -1, 0)) == MAP_FAILED) {
cli_warnmsg("fmap: mmap() failed\n"); cli_warnmsg("fmap: mmap() failed\n");

@ -505,10 +505,10 @@ static int is_parse_hdr(int desc, cli_ctx *ctx, struct IS_CABSTUFF *c) {
cli_errmsg("is_parse_hdr: mmap failed\n"); cli_errmsg("is_parse_hdr: mmap failed\n");
return CL_EMEM; return CL_EMEM;
} }
hdr = map + c->hdr - mp_hdr; h1 = (struct IS_HDR *)fmap_need_off(map, c->hdr - mp_hdr, sizeof(*h1));
hdr = (char *)h1;
} }
h1 = (struct IS_HDR *)fmap_need_ptr(map, hdr, sizeof(*h1));
if(!h1) { if(!h1) {
cli_dbgmsg("is_parse_hdr: not enough room for H1\n"); cli_dbgmsg("is_parse_hdr: not enough room for H1\n");
fmunmap(map); fmunmap(map);

Loading…
Cancel
Save