[pulseaudio-discuss] [PATCH] xen:Resource leak in local function alloc_gref() - alloc_fd and dev_fd
Peter Meerwald
pmeerw at pmeerw.net
Tue Jul 21 07:53:34 PDT 2015
> The file descriptors need to be close in failure cases otherwise resource
> leak is there.
>
> Buglink: https://bugs.freedesktop.org/show_bug.cgi?id=91174#c0
applied, thanks!
> Signed-off-by: Manish Sogi <manish.sogi at samsung.com>
> ---
> src/modules/xen/module-xenpv-sink.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/modules/xen/module-xenpv-sink.c b/src/modules/xen/module-xenpv-sink.c
> index b87f811..4813f10 100644
> --- a/src/modules/xen/module-xenpv-sink.c
> +++ b/src/modules/xen/module-xenpv-sink.c
> @@ -591,6 +591,7 @@ static int alloc_gref(struct ioctl_gntalloc_alloc_gref *gref_, void **addr) {
> dev_fd = open("/dev/xen/gntdev", O_RDWR);
> if (dev_fd<=0) {
> perror("Could not open /dev/xen/gntdev! Have you loaded the xen_gntdev module?");
> + close(alloc_fd);
> return 1;
> }
>
> @@ -602,7 +603,7 @@ static int alloc_gref(struct ioctl_gntalloc_alloc_gref *gref_, void **addr) {
> rv = ioctl(alloc_fd, IOCTL_GNTALLOC_ALLOC_GREF, gref_);
> if (rv) {
> pa_log_debug("Xen audio sink: src-add error: %s (rv=%d)\n", strerror(errno), rv);
> - return rv;
> + goto finish;
> }
>
> /*addr=NULL(default),length, prot, flags, fd, offset*/
> @@ -610,7 +611,7 @@ static int alloc_gref(struct ioctl_gntalloc_alloc_gref *gref_, void **addr) {
> if (*addr == MAP_FAILED) {
> *addr = 0;
> pa_log_debug("Xen audio sink: mmap'ing shared page failed\n");
> - return rv;
> + goto finish;
> }
>
> pa_log_debug("Xen audio sink: Got grant #%d. Mapped locally at %Ld=%p\n",
> @@ -626,7 +627,7 @@ static int alloc_gref(struct ioctl_gntalloc_alloc_gref *gref_, void **addr) {
> if (rv)
> pa_log_debug("gntalloc unmap notify error: %s (rv=%d)\n", strerror(errno), rv);
> */
> -
> +finish:
> close(alloc_fd);
> close(dev_fd);
>
> --
> 1.7.9.5
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>
--
Peter Meerwald
+43-664-2444418 (mobile)
More information about the pulseaudio-discuss
mailing list