aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-01-12 12:29:15 +0100
committerScott Anderson <scott@anderso.nz>2020-01-13 16:49:08 +1300
commit6a0d8c85e49e4cdd103005a189f722f7678b0e20 (patch)
tree515c5ecd1777c3a6b63adb13d3cf641d9212a023
parenta4b0f9fc6130ee61bfdf3a6abc2642c9f89ba321 (diff)
downloadexternal_drm_info-6a0d8c85e49e4cdd103005a189f722f7678b0e20.tar.gz
external_drm_info-6a0d8c85e49e4cdd103005a189f722f7678b0e20.tar.bz2
external_drm_info-6a0d8c85e49e4cdd103005a189f722f7678b0e20.zip
Handle all drmMode* errors
And remove extraneous checks for zero object IDs. See [1]. [1]: https://github.com/ascent12/drm_info/pull/46#discussion_r365556824
-rw-r--r--json.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/json.c b/json.c
index 9c85ecc..fac7025 100644
--- a/json.c
+++ b/json.c
@@ -183,6 +183,10 @@ static struct json_object *in_formats_info(int fd, uint32_t blob_id)
struct json_object *arr = json_object_new_array();
drmModePropertyBlobRes *blob = drmModeGetPropertyBlob(fd, blob_id);
+ if (!blob) {
+ perror("drmModeGetPropertyBlob");
+ return NULL;
+ }
struct drm_format_modifier_blob *data = blob->data;
@@ -243,12 +247,12 @@ static struct json_object *mode_info(const drmModeModeInfo *mode)
static struct json_object *mode_id_info(int fd, uint32_t blob_id)
{
- if (blob_id == 0) {
+ drmModePropertyBlobRes *blob = drmModeGetPropertyBlob(fd, blob_id);
+ if (!blob) {
+ perror("drmModeGetPropertyBlob");
return NULL;
}
- drmModePropertyBlobRes *blob = drmModeGetPropertyBlob(fd, blob_id);
-
drmModeModeInfo *mode = blob->data;
struct json_object *obj = mode_info(mode);
@@ -263,6 +267,10 @@ static struct json_object *writeback_pixel_formats_info(int fd, uint32_t blob_id
struct json_object *arr = json_object_new_array();
drmModePropertyBlobRes *blob = drmModeGetPropertyBlob(fd, blob_id);
+ if (!blob) {
+ perror("drmModeGetPropertyBlob");
+ return NULL;
+ }
uint32_t *fmts = blob->data;
uint32_t fmts_len = blob->length / sizeof(uint32_t);
@@ -277,12 +285,12 @@ static struct json_object *writeback_pixel_formats_info(int fd, uint32_t blob_id
static struct json_object *path_info(int fd, uint32_t blob_id)
{
- if (blob_id == 0) {
+ drmModePropertyBlobRes *blob = drmModeGetPropertyBlob(fd, blob_id);
+ if (!blob) {
+ perror("drmModeGetPropertyBlob");
return NULL;
}
- drmModePropertyBlobRes *blob = drmModeGetPropertyBlob(fd, blob_id);
-
struct json_object *obj = json_object_new_string_len(blob->data, blob->length);
drmModeFreePropertyBlob(blob);