]> git.alsa-project.org Git - alsa-lib.git/commitdiff
pcm file plugin: handle snd_pcm_mmap_begin() error path in snd_pcm_file_mmap_commit()
authorJaroslav Kysela <perex@perex.cz>
Mon, 27 Feb 2017 08:29:18 +0000 (09:29 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 27 Feb 2017 08:29:18 +0000 (09:29 +0100)
src/pcm/pcm_file.c

index 0363f849f4b0e016cfbb9983e5f2ec67bcd54512..801225151d9a17a3b22ad77ae959295e3b611659 100644 (file)
@@ -593,11 +593,13 @@ static snd_pcm_sframes_t snd_pcm_file_mmap_commit(snd_pcm_t *pcm,
        const snd_pcm_channel_area_t *areas;
        snd_pcm_sframes_t result;
 
-       snd_pcm_mmap_begin(file->gen.slave, &areas, &ofs, &siz);
-       assert(ofs == offset && siz == size);
-       result = snd_pcm_mmap_commit(file->gen.slave, ofs, siz);
-       if (result > 0)
-               snd_pcm_file_add_frames(pcm, areas, ofs, result);
+       result = snd_pcm_mmap_begin(file->gen.slave, &areas, &ofs, &siz);
+       if (result >= 0) {
+               assert(ofs == offset && siz == size);
+               result = snd_pcm_mmap_commit(file->gen.slave, ofs, siz);
+               if (result > 0)
+                       snd_pcm_file_add_frames(pcm, areas, ofs, result);
+       }
        return result;
 }