summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordumbbell <dumbbell@FreeBSD.org>2013-08-24 16:55:53 +0000
committerdumbbell <dumbbell@FreeBSD.org>2013-08-24 16:55:53 +0000
commitb7d376ce03e400fd642a642d69997ab017a9466e (patch)
tree464a0619ba38c3d5b885b45ae2cb33589c0bd9a9 /sys
parent77d7bfc965beaaa735ba81acae2ef279a8c61154 (diff)
downloadFreeBSD-src-b7d376ce03e400fd642a642d69997ab017a9466e.zip
FreeBSD-src-b7d376ce03e400fd642a642d69997ab017a9466e.tar.gz
drm: Fix leak of connector->edid_blob_ptr
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/drm2/drm_crtc.c5
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--;
OpenPOWER on IntegriCloud