mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 01:32:21 +02:00
ALSA: usb-audio: qcom: Free QMI handle
qc_usb_audio_probe() allocates svc->uaudio_svc_hdl separately from the uaudio_qmi_svc object. qmi_handle_release() releases the resources owned by an initialized QMI handle, but does not free the memory containing the struct qmi_handle itself. The probe error path and the remove path currently release the handle and then free svc, losing the last pointer to the separately allocated handle. This leaks one struct qmi_handle on each affected probe unwind and on each successful probe/remove cycle. Free the handle after qmi_handle_release() in both paths. Signed-off-by: Xu Rao <raoxu@uniontech.com> Link: https://patch.msgid.link/9108EC860F3F87DF+20260623071308.2549182-1-raoxu@uniontech.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6485da8579
commit
b8ff1f3578
|
|
@ -1988,6 +1988,7 @@ static int qc_usb_audio_probe(struct auxiliary_device *auxdev,
|
|||
release_qmi:
|
||||
qc_usb_audio_cleanup_qmi_dev();
|
||||
qmi_handle_release(svc->uaudio_svc_hdl);
|
||||
kfree(svc->uaudio_svc_hdl);
|
||||
free_svc:
|
||||
kfree(svc);
|
||||
|
||||
|
|
@ -2012,6 +2013,7 @@ static void qc_usb_audio_remove(struct auxiliary_device *auxdev)
|
|||
qc_usb_audio_cleanup_qmi_dev();
|
||||
|
||||
qmi_handle_release(svc->uaudio_svc_hdl);
|
||||
kfree(svc->uaudio_svc_hdl);
|
||||
kfree(svc);
|
||||
uaudio_svc = NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user