It's not necessary to initialize ->fd at the beginning of map_file() as
the call to open(2) will overwrite it anyway.
Also adapt a check for a valid file descriptor. Although POSIX states
that open(2) returns -1 on error, there is no reason to hard-code this
constant. Instead, check for any negative value.
bool map_file(const char *path, struct file *f) {
// Fully initialize the struct for unmap_file() and other users
- f->fd = -1;
- f->size = 0;
- f->next_index = 0;
- f->header = NULL;
+ memset(f, 0, sizeof(*f));
f->fd = open(path, O_RDONLY | O_CLOEXEC);
if (f->fd < 0) {
munmap((void *)f->header, f->size);
f->header = NULL;
}
- if (f->fd != -1) {
+ if (f->fd >= 0) {
close(f->fd);
f->fd = -1;
}