Ingo Schwarze wrote:
> +     if ((cp1 = mmap(NULL, sb1.st_size, PROT_READ, MAP_PRIVATE,
> +         fd1, 0)) == NULL) {
> +             say(MANDOC_DB, "&mmap");
> +             goto err;
> +     }
> +     if ((cp2 = mmap(NULL, sb2.st_size, PROT_READ, MAP_PRIVATE,
> +         fd2, 0)) == NULL) {
> +             say(tfn, "&mmap");
> +             goto err;
> +     }

mmap returns MAP_FAILED (-1), not null, on failure.

> +     for (i = 0; i < sb1.st_size; i++)
> +             if (cp1[i] != cp2[i])
> +                     goto err;

this could just be memcmp.

> +     if (cp1 != NULL)
> +             munmap(cp1, sb1.st_size);
> +     if (cp2 != NULL)
> +             munmap(cp2, sb2.st_size);

may need adjustment after fixing mmap checks, too.

Reply via email to