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.