summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorrmind <rmind@NetBSD.org>2008-04-01 16:48:18 +0000
committerrmind <rmind@NetBSD.org>2008-04-01 16:48:18 +0000
commit4b02b68c5950449defd7cdb1df93e7d0ec140b1b (patch)
treefdfefc6aa18b7733cbb667404ca0878c58bbccbb /sys/dev
parente3c537a961e57fdf5007d4015e9673cde4bd41b4 (diff)
sme_event_register: fix a memory leaks in two error paths.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/sysmon/sysmon_envsys_events.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/dev/sysmon/sysmon_envsys_events.c b/sys/dev/sysmon/sysmon_envsys_events.c
index 11087ac7cda..90fb9fdae88 100644
--- a/sys/dev/sysmon/sysmon_envsys_events.c
+++ b/sys/dev/sysmon/sysmon_envsys_events.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sysmon_envsys_events.c,v 1.51 2008/04/01 12:25:30 xtraeme Exp $ */
+/* $NetBSD: sysmon_envsys_events.c,v 1.52 2008/04/01 16:48:18 rmind Exp $ */
/*-
* Copyright (c) 2007, 2008 Juan Romero Pardines.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysmon_envsys_events.c,v 1.51 2008/04/01 12:25:30 xtraeme Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysmon_envsys_events.c,v 1.52 2008/04/01 16:48:18 rmind Exp $");
#include <sys/param.h>
#include <sys/types.h>
@@ -109,8 +109,8 @@ sme_event_register(prop_dictionary_t sdict, envsys_data_t *edata,
osee->see_pes.pes_dvname,
osee->see_pes.pes_sensname,
osee->see_type));
- mutex_exit(&sme->sme_mtx);
- return EEXIST;
+ error = EEXIST;
+ goto out;
}
critvalup = true;
break;
@@ -133,8 +133,7 @@ sme_event_register(prop_dictionary_t sdict, envsys_data_t *edata,
"(critval updated)\n", __func__, sme->sme_name,
edata->desc, osee->see_type));
error = sme_sensor_upint32(sdict, objkey, critval);
- mutex_exit(&sme->sme_mtx);
- return error;
+ goto out;
}
}