in src/endiantools.c [35:54]
static sparkey_returncode _write_full(int fd, uint8_t *buf, size_t count) {
while (count > 0) {
ssize_t actual = write(fd, buf, count);
if (actual < 0) {
switch (errno) {
case EINTR:
case EAGAIN: continue;
case ENOSPC: return SPARKEY_OUT_OF_DISK;
case EFBIG: return SPARKEY_FILE_SIZE_EXCEEDED;
case EBADF: return SPARKEY_FILE_CLOSED;
default:
fprintf(stderr, "_write_full():%d bug: actual_written = %"PRIu64", wanted = %"PRIu64", errno = %d\n", __LINE__, (uint64_t)actual, (uint64_t)count, errno);
return SPARKEY_INTERNAL_ERROR;
}
}
count -= actual;
buf += actual;
}
return SPARKEY_SUCCESS;
}