{
size_t saves_count;
size_t i;
+ int res;
saves_count = byte_count / sizeof(*buffer);
i = 0;
buffer[i] = to_big_endian(buffer[i]);
++i;
}
- return (write(fd, buffer, byte_count));
+ res = write(fd, buffer, byte_count);
+ return (res < 0 || (size_t)res != byte_count);
}
static int write_header(int fd)
t_save version_copy;
res = write(fd, g_signature, sizeof(g_signature));
+ res = (res < 0 || (size_t)res != sizeof(g_signature));
version_copy = g_version;
res = res || write_save(fd, &version_copy, sizeof(g_version));
return (res);
val = to_big_endian(vec->size);
res = write(fd, &val, sizeof(val));
+ res = (res < 0 || (size_t)res != sizeof(val));
i = 0;
while (i < vec->size)
{
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
+#include <sys/stat.h>
#include <ncurses.h>
/*
return (0);
if (c == load && argc != 1)
return (0);
- if (c == save || argc != 1)
+ if (c == save && argc != 1)
return (0);
- if (c == openf || argc != 1)
+ if (c == openf && argc != 1)
return (0);
if (c == setnode && argc != 2)
return (0);
else if (c == save)
{
input->argv[i].type = file_descriptor;
- input->argv[i].val.fd = open(str, O_WRONLY);
+ input->argv[i].val.fd = open(str, O_CREAT | O_WRONLY | O_EXCL, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
res = (input->argv[i].val.fd >= 0);
}
else if (c == openf)