> > + for (i = 0; i < len; i++) { > > + rc = pread(config_fd, guest->config + list[i].offset, > > + list[i].len, list[i].offset); > > + if (rc != list[i].len) { > > pread is allowed to return early, returning the number of bytes read. >
This is a sysfs file though, not a socket or pipe where a partial read makes sense and will actually happen. If we can't read something that'll be because the kernel denies access. So IMHO it should be fine to treat anything which doesn't give us the amount of bytes we asked for as an error condition. cheers, Gerd