aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2006-01-17 17:02:45 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2006-01-17 17:02:45 +0000
commit2971d7ab9b2b94937fa79d7a1e299f96cb339542 (patch)
tree7de413ef4c3c34c6c65d08f04db5c553002d0b01 /sys
parent6ef970a972becd0eedb81e326e683173a87a8153 (diff)
downloadsrc-2971d7ab9b2b94937fa79d7a1e299f96cb339542.tar.gz
src-2971d7ab9b2b94937fa79d7a1e299f96cb339542.zip
Fix a memory leak I introduced with the hostb/vgapci stuff.
Reported by: Coverity (via dfr's clue-bat)
Notes
Notes: svn path=/head/; revision=154486
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/agp/agp.c12
-rw-r--r--sys/pci/agp.c12
2 files changed, 16 insertions, 8 deletions
diff --git a/sys/dev/agp/agp.c b/sys/dev/agp/agp.c
index 3986589e536d..a0deb5f308d3 100644
--- a/sys/dev/agp/agp.c
+++ b/sys/dev/agp/agp.c
@@ -830,18 +830,22 @@ agp_mmap(struct cdev *kdev, vm_offset_t offset, vm_paddr_t *paddr, int prot)
device_t
agp_find_device()
{
- device_t *children;
+ device_t *children, child;
int i, count;
if (!agp_devclass)
return NULL;
if (devclass_get_devices(agp_devclass, &children, &count) != 0)
return NULL;
+ child = NULL;
for (i = 0; i < count; i++) {
- if (device_is_attached(children[i]))
- return (children[i]);
+ if (device_is_attached(children[i])) {
+ child = children[i];
+ break;
+ }
}
- return NULL;
+ free(children, M_TEMP);
+ return child;
}
enum agp_acquire_state
diff --git a/sys/pci/agp.c b/sys/pci/agp.c
index 3986589e536d..a0deb5f308d3 100644
--- a/sys/pci/agp.c
+++ b/sys/pci/agp.c
@@ -830,18 +830,22 @@ agp_mmap(struct cdev *kdev, vm_offset_t offset, vm_paddr_t *paddr, int prot)
device_t
agp_find_device()
{
- device_t *children;
+ device_t *children, child;
int i, count;
if (!agp_devclass)
return NULL;
if (devclass_get_devices(agp_devclass, &children, &count) != 0)
return NULL;
+ child = NULL;
for (i = 0; i < count; i++) {
- if (device_is_attached(children[i]))
- return (children[i]);
+ if (device_is_attached(children[i])) {
+ child = children[i];
+ break;
+ }
}
- return NULL;
+ free(children, M_TEMP);
+ return child;
}
enum agp_acquire_state