return error;
}
error = read(proc->pagemap_fd, (char*)range, numpages * sizeof(uint64_t));
- if (error < numpages * sizeof(uint64_t)) {
+ if (error == 0) {
+ /* EOF, mapping is not in userspace mapping range (probably vectors) */
+ *len = 0;
+ free(range);
+ *range_out = NULL;
+ return 0;
+ } else if (error < 0 || (error > 0 && error < numpages * sizeof(uint64_t))) {
error = (error < 0) ? errno : -1;
free(range);
return error;
sscanf(line, "%lx-%lx %s %lx %*s %*d %" S(MAX_LINE) "s",
&map->start, &map->end, perms, &map->offset, name);
- if (!strcmp(name, "[vectors]"))
- continue;
-
map->name = malloc(strlen(name) + 1);
if (!map->name) {
error = errno;