Sfoglia il codice sorgente

Reading should use MAP_PRIVATE

Bryan Drewery 12 anni fa
parent
commit
13730248b9
2 ha cambiato i file con 4 aggiunte e 4 eliminazioni
  1. 3 3
      src/binary.c
  2. 1 1
      src/mod/compress.mod/compress.c

+ 3 - 3
src/binary.c

@@ -168,7 +168,7 @@ bin_checksum(const char *fname, int todo)
     fd = open(fname, O_RDONLY);
     if (fd == -1) werr(ERR_BINSTAT);
     size = lseek(fd, 0, SEEK_END);
-    map = (unsigned char*) mmap(0, size, PROT_READ, MAP_SHARED, fd, 0);
+    map = (unsigned char*) mmap(0, size, PROT_READ, MAP_PRIVATE, fd, 0);
     if ((void*)map == MAP_FAILED) goto fatal;
     if ((offset = elf_find_data_mem_offset(fd, map, size, &settings.prefix,
         PREFIXLEN)) == 0) {
@@ -190,7 +190,7 @@ bin_checksum(const char *fname, int todo)
     fd = open(fname, O_RDONLY);
     if (fd == -1) werr(ERR_BINSTAT);
     size = lseek(fd, 0, SEEK_END);
-    map = (unsigned char*) mmap(0, size, PROT_READ, MAP_SHARED, fd, 0);
+    map = (unsigned char*) mmap(0, size, PROT_READ, MAP_PRIVATE, fd, 0);
     if ((void*)map == MAP_FAILED) goto fatal;
 
     /* Find the packdata */
@@ -235,7 +235,7 @@ bin_checksum(const char *fname, int todo)
     if (fd == -1) werr(ERR_BINSTAT);
     size = lseek(fd, 0, SEEK_END);
 
-    map = (unsigned char*) mmap(0, size, PROT_READ, MAP_SHARED, fd, 0);
+    map = (unsigned char*) mmap(0, size, PROT_READ, MAP_PRIVATE, fd, 0);
     if ((void*)map == MAP_FAILED) goto fatal;
 
     /* Find settings struct in original binary */

+ 1 - 1
src/mod/compress.mod/compress.c

@@ -217,7 +217,7 @@ static int compress_to_file_mmap(FILE *fout, FILE *fin)
       return COMPF_ERROR;
 
     /* mmap file contents to memory */
-    buf = mmap(0, st.st_size, PROT_READ, MAP_SHARED, ifd, 0);
+    buf = mmap(0, st.st_size, PROT_READ, MAP_PRIVATE, ifd, 0);
     if (buf < 0)
       return COMPF_ERROR;