From 0687c0a4ec78730f752cee04a5b0862f47dbf026 Mon Sep 17 00:00:00 2001 From: Robert Noland Date: Fri, 22 Aug 2008 21:34:25 -0400 Subject: [PATCH] [FreeBSD] Fix long standing memory leak in drm_remove_magic. We shuffled all the links around to disconnect the entry, but never free it. We would incorrectly free the last entry in the hash chain if nothing matched. --- bsd-core/drm_auth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bsd-core/drm_auth.c b/bsd-core/drm_auth.c index f3aafe44..60af16cb 100644 --- a/bsd-core/drm_auth.c +++ b/bsd-core/drm_auth.c @@ -117,11 +117,11 @@ static int drm_remove_magic(struct drm_device *dev, drm_magic_t magic) if (prev) { prev->next = pt->next; } + free(pt, M_DRM); return 0; } } - free(pt, M_DRM); return EINVAL; }