diff options
Diffstat (limited to 'mld')
-rw-r--r-- | mld/link.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -7,6 +7,7 @@ #include <string.h> #include <sys/stat.h> #include <melf.h> +#include <fcntl.h> #include "link.h" #include "mips.h" @@ -573,7 +574,13 @@ static int write_file(struct linker *linker) extern char *current_file; current_file = linker->args->out_file; - FILE *out = fopen(linker->args->out_file, "w"); + int fd = open(linker->args->out_file, O_RDWR | O_CREAT, 0711); + if (fd < 0) { + PERROR("cannot write"); + return M_ERROR; + } + + FILE *out = fdopen(fd, "w"); if (out == NULL) { PERROR("cannot write"); return M_ERROR; |