Hi Andrei, On Fri, Jan 31, 2014 at 6:18 AM, Andrei Emeltchenko <Andrei.Emeltchenko.news@xxxxxxxxx> wrote: > From: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx> > > Fixes memory leak when returning bad fd we still allocate memory which > is not freed in the caller function audio_open_output_stream(). > --- > android/hal-audio.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/android/hal-audio.c b/android/hal-audio.c > index 35bafe7..4b80da8 100644 > --- a/android/hal-audio.c > +++ b/android/hal-audio.c > @@ -713,8 +713,7 @@ static int ipc_open_stream_cmd(uint8_t endpoint_id, uint16_t *mtu, int *fd, > > result = audio_ipc_cmd(AUDIO_SERVICE_ID, AUDIO_OP_OPEN_STREAM, > sizeof(cmd), &cmd, &rsp_len, rsp, fd); > - > - if (result == AUDIO_STATUS_SUCCESS) { > + if (result == AUDIO_STATUS_SUCCESS && *fd >= 0) { > size_t buf_len = sizeof(struct audio_preset) + > rsp->preset[0].len; > *mtu = rsp->mtu; > -- > 1.8.3.2 We should check if the fd is valid on audio_ipc_cmd. -- Luiz Augusto von Dentz -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html