Unified · Split
| @@ -38,12 +38,13 @@ int tcc_relocate(TCCState *s1) · 37 unmodified lines | ||
| 38 | 38 | { |
| 39 | 39 | int ret; |
| 40 | 40 | #ifdef HAVE_SELINUX |
| 41 | + /* Use mmap instead of malloc for Selinux | |
| 42 | + Ref http://www.gnu.org/s/libc/manual/html_node/File-Size.html */ | |
| 41 | 43 | char tmpfname[] = "/tmp/.tccrunXXXXXX"; |
| 42 | 44 | int fd = mkstemp (tmpfname); |
| 43 | − unlink (tmpfname); ftruncate (fd, 1000); | |
| 44 | 45 | if ((ret= tcc_relocate_ex(s1,NULL)) < 0)return -1; |
| 45 | 46 | s1->mem_size=ret; |
| 46 | − /* Use mmap instead of malloc for Selinux */ | |
| 47 | + unlink (tmpfname); ftruncate (fd, s1->mem_size); | |
| 47 | 48 | s1->write_mem = mmap (NULL, ret, PROT_READ|PROT_WRITE, |
| 48 | 49 | MAP_SHARED, fd, 0); |
| 49 | 50 | if(s1->write_mem == MAP_FAILED){ |