diff options
author | Axel Lin <axel.lin@gmail.com> | 2010-07-20 18:19:41 -0400 |
---|---|---|
committer | Matthew Garrett <mjg@redhat.com> | 2010-08-03 09:48:58 -0400 |
commit | d47bb5b227f103f9bc0e572f478ac6b2a08fc2b2 (patch) | |
tree | a3843767a97bad39cfd47addff12300dd3c42009 /drivers/platform/x86/asus_acpi.c | |
parent | 80183a4b637982d56965e4a27b823c9a29d185b3 (diff) |
asus_acpi: fix a memory leak in asus_hotk_get_info()
In the case of no match ( hotk->model == END_MODEL ), model sholud be
kfreed before return AE_OK.
This patch includes below fixes:
1. adds a missing kfree(model) before return AE_OK.
2. asus_hotk_get_info should return int, thus return 0 instead of AE_OK.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Cc: Corentin Chary <corentincj@iksaif.net>
Cc: Karol Kozimor <sziwan@users.sourceforge.net>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Len Brown <len.brown@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Diffstat (limited to 'drivers/platform/x86/asus_acpi.c')
-rw-r--r-- | drivers/platform/x86/asus_acpi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/platform/x86/asus_acpi.c b/drivers/platform/x86/asus_acpi.c index 92fd30c9379c..ae0914d4e02e 100644 --- a/drivers/platform/x86/asus_acpi.c +++ b/drivers/platform/x86/asus_acpi.c | |||
@@ -1340,7 +1340,8 @@ static int asus_hotk_get_info(void) | |||
1340 | return -ENODEV; | 1340 | return -ENODEV; |
1341 | } | 1341 | } |
1342 | hotk->methods = &model_conf[hotk->model]; | 1342 | hotk->methods = &model_conf[hotk->model]; |
1343 | return AE_OK; | 1343 | kfree(model); |
1344 | return 0; | ||
1344 | } | 1345 | } |
1345 | hotk->methods = &model_conf[hotk->model]; | 1346 | hotk->methods = &model_conf[hotk->model]; |
1346 | printk(KERN_NOTICE " %s model detected, supported\n", string); | 1347 | printk(KERN_NOTICE " %s model detected, supported\n", string); |
@@ -1374,7 +1375,7 @@ static int asus_hotk_get_info(void) | |||
1374 | 1375 | ||
1375 | kfree(model); | 1376 | kfree(model); |
1376 | 1377 | ||
1377 | return AE_OK; | 1378 | return 0; |
1378 | } | 1379 | } |
1379 | 1380 | ||
1380 | static int asus_hotk_check(void) | 1381 | static int asus_hotk_check(void) |