diff options
author | dumbbell <dumbbell@FreeBSD.org> | 2013-08-24 16:55:53 +0000 |
---|---|---|
committer | dumbbell <dumbbell@FreeBSD.org> | 2013-08-24 16:55:53 +0000 |
commit | b7d376ce03e400fd642a642d69997ab017a9466e (patch) | |
tree | 464a0619ba38c3d5b885b45ae2cb33589c0bd9a9 | |
parent | 77d7bfc965beaaa735ba81acae2ef279a8c61154 (diff) | |
download | FreeBSD-src-b7d376ce03e400fd642a642d69997ab017a9466e.zip FreeBSD-src-b7d376ce03e400fd642a642d69997ab017a9466e.tar.gz |
drm: Fix leak of connector->edid_blob_ptr
-rw-r--r-- | sys/dev/drm2/drm_crtc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/drm2/drm_crtc.c b/sys/dev/drm2/drm_crtc.c index f6e462e..ae40eb2 100644 --- a/sys/dev/drm2/drm_crtc.c +++ b/sys/dev/drm2/drm_crtc.c @@ -170,6 +170,9 @@ static struct drm_prop_enum_list drm_encoder_enum_list[] = { DRM_MODE_ENCODER_TVDAC, "TV" }, }; +static void drm_property_destroy_blob(struct drm_device *dev, + struct drm_property_blob *blob); + char *drm_get_encoder_name(struct drm_encoder *encoder) { static char buf[32]; @@ -520,6 +523,8 @@ void drm_connector_cleanup(struct drm_connector *connector) drm_mode_remove(connector, mode); sx_xlock(&dev->mode_config.mutex); + if (connector->edid_blob_ptr) + drm_property_destroy_blob(dev, connector->edid_blob_ptr); drm_mode_object_put(dev, &connector->base); list_del(&connector->head); dev->mode_config.num_connector--; |