]> code.delx.au - pulseaudio/blobdiff - polyp/oss-util.c
If the card couldn't do duplex when required we would incorrectly return
[pulseaudio] / polyp / oss-util.c
index 20a2965a32ce89e51f3766a6d34cfb4ef8e5d55b..ae6772fd9b1345f4f094697f52fc1aeeb1711dea 100644 (file)
@@ -57,7 +57,7 @@ int pa_oss_open(const char *device, int *mode, int* pcaps) {
             if (*tcaps & DSP_CAP_DUPLEX)
                 return fd;
 
-            close(fd);
+            goto fail;
         }
         
         if ((fd = open(device, (*mode = O_WRONLY)|O_NDELAY)) < 0) {
@@ -87,7 +87,7 @@ int pa_oss_open(const char *device, int *mode, int* pcaps) {
 fail:
     if (fd >= 0)
         close(fd);
-    return fd;
+    return -1;
 }
 
 int pa_oss_auto_format(int fd, pa_sample_spec *ss) {