summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/igt_drm_fdinfo.c8
-rw-r--r--lib/igt_drm_fdinfo.h4
2 files changed, 6 insertions, 6 deletions
diff --git a/lib/igt_drm_fdinfo.c b/lib/igt_drm_fdinfo.c
index b422f67a..250d9e89 100644
--- a/lib/igt_drm_fdinfo.c
+++ b/lib/igt_drm_fdinfo.c
@@ -44,12 +44,12 @@ static size_t read_fdinfo(char *buf, const size_t sz, int at, const char *name)
if (fd < 0)
return 0;
- buf[sz - 1] = 0;
- count = read(fd, buf, sz);
- buf[sz - 1] = 0;
+ count = read(fd, buf, sz - 1);
+ if (count > 0)
+ buf[count - 1] = 0;
close(fd);
- return count;
+ return count > 0 ? count : 0;
}
static int parse_engine(char *line, struct drm_client_fdinfo *info,
diff --git a/lib/igt_drm_fdinfo.h b/lib/igt_drm_fdinfo.h
index 5db63e28..87594716 100644
--- a/lib/igt_drm_fdinfo.h
+++ b/lib/igt_drm_fdinfo.h
@@ -46,7 +46,7 @@ struct drm_client_fdinfo {
* igt_parse_drm_fdinfo: Parses the drm fdinfo file
*
* @drm_fd: DRM file descriptor
- * @info: Structure to populate with read data
+ * @info: Structure to populate with read data. Must be zeroed.
*
* Returns the number of valid drm fdinfo keys found or zero if not all
* mandatory keys were present or no engines found.
@@ -58,7 +58,7 @@ unsigned int igt_parse_drm_fdinfo(int drm_fd, struct drm_client_fdinfo *info);
*
* @dir: File descriptor pointing to /proc/pid/fdinfo directory
* @fd: String representation of the file descriptor number to parse.
- * @info: Structure to populate with read data
+ * @info: Structure to populate with read data. Must be zeroed.
*
* Returns the number of valid drm fdinfo keys found or zero if not all
* mandatory keys were present or no engines found.