summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/common.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/scripts/common.c b/scripts/common.c
index 3d07be3630..2be41615ea 100644
--- a/scripts/common.c
+++ b/scripts/common.c
@@ -102,33 +102,26 @@ int write_file(const char *filename, const void *buf, size_t size)
{
int fd, ret = 0;
int now;
- size_t left = size;
- /* The same file may be mmapped currently, so can't use O_TRUNC here */
- fd = open(filename, O_WRONLY | O_CREAT,
+ fd = open(filename, O_WRONLY | O_TRUNC | O_CREAT,
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
if (fd < 0) {
fprintf(stderr, "Cannot open %s: %s\n", filename, strerror(errno));
return -errno;
}
- while (left) {
- now = write(fd, buf, left);
+ while (size) {
+ now = write(fd, buf, size);
if (now < 0) {
fprintf(stderr, "Cannot write to %s: %s\n", filename,
strerror(errno));
ret = -errno;
goto out;
}
- left -= now;
+ size -= now;
buf += now;
}
- if (ftruncate(fd, size) < 0) {
- fprintf(stderr, "Cannot truncate file: %s", strerror(errno));
- ret = -errno;
- }
-
out:
close(fd);