]> git.alsa-project.org Git - alsa-lib.git/commitdiff
socket: missing socket close
authorRenu Tyagi <renu.tyagi@samsung.com>
Tue, 23 Sep 2014 07:06:36 +0000 (09:06 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 23 Sep 2014 07:06:36 +0000 (09:06 +0200)
Signed-off-by: renu tyagi <renu.tyagi@samsung.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/socket.c

index 97c919f748767356d5c802e759cffd14a34b15f9..16979b520ae6ebd702cd8f9e888753080a607e90 100644 (file)
@@ -124,12 +124,15 @@ int snd_is_local(struct hostent *hent)
        
        conf.ifc_len = numreqs * sizeof(struct ifreq);
        conf.ifc_buf = malloc((unsigned int) conf.ifc_len);
-       if (! conf.ifc_buf)
+       if (! conf.ifc_buf) {
+               close(s);
                return -ENOMEM;
+       }
        while (1) {
                err = ioctl(s, SIOCGIFCONF, &conf);
                if (err < 0) {
                        SYSERR("SIOCGIFCONF failed");
+                       close(s);
                        return -errno;
                }
                if ((size_t)conf.ifc_len < numreqs * sizeof(struct ifreq))
@@ -137,8 +140,10 @@ int snd_is_local(struct hostent *hent)
                numreqs *= 2;
                conf.ifc_len = numreqs * sizeof(struct ifreq);
                conf.ifc_buf = realloc(conf.ifc_buf, (unsigned int) conf.ifc_len);
-               if (! conf.ifc_buf)
+               if (! conf.ifc_buf) {
+                       close(s);
                        return -ENOMEM;
+               }
        }
        numreqs = conf.ifc_len / sizeof(struct ifreq);
        for (i = 0; i < numreqs; ++i) {