• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

linux-3.0.x for AP-SH4A-0A Board


Commit MetaInfo

Révision8282be4dd5ff3fef30271c61ee74db66524d8350 (tree)
l'heure2011-08-18 02:55:53
AuteurJulia Lawall <julia@diku...>
CommiterGreg Kroah-Hartman

Message de Log

hwmon: (ibmaem) add missing kfree

commit 66a89b2164e2d30661edbd1953eacf0594d8203a upstream.

rs_resp is dynamically allocated in aem_read_sensor(), so it should be freed
before exiting in every case. This collects the kfree and the return at
the end of the function.

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Change Summary

Modification

--- a/drivers/hwmon/ibmaem.c
+++ b/drivers/hwmon/ibmaem.c
@@ -432,13 +432,15 @@ static int aem_read_sensor(struct aem_data *data, u8 elt, u8 reg,
432432 aem_send_message(ipmi);
433433
434434 res = wait_for_completion_timeout(&ipmi->read_complete, IPMI_TIMEOUT);
435- if (!res)
436- return -ETIMEDOUT;
435+ if (!res) {
436+ res = -ETIMEDOUT;
437+ goto out;
438+ }
437439
438440 if (ipmi->rx_result || ipmi->rx_msg_len != rs_size ||
439441 memcmp(&rs_resp->id, &system_x_id, sizeof(system_x_id))) {
440- kfree(rs_resp);
441- return -ENOENT;
442+ res = -ENOENT;
443+ goto out;
442444 }
443445
444446 switch (size) {
@@ -463,8 +465,11 @@ static int aem_read_sensor(struct aem_data *data, u8 elt, u8 reg,
463465 break;
464466 }
465467 }
468+ res = 0;
466469
467- return 0;
470+out:
471+ kfree(rs_resp);
472+ return res;
468473 }
469474
470475 /* Update AEM energy registers */