]> git.alsa-project.org Git - alsa-lib.git/commitdiff
ucm: execute_sysw - fix possible use-after-free
authorJaroslav Kysela <perex@perex.cz>
Wed, 7 Dec 2022 13:49:48 +0000 (14:49 +0100)
committerJaroslav Kysela <perex@perex.cz>
Wed, 7 Dec 2022 13:51:32 +0000 (14:51 +0100)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/ucm/main.c

index 4f36648cfeafd2c08e11ba24f21645e18042c2f8..2ff4d3f340e3a1635076b728aff5d56fc3c74a44 100644 (file)
@@ -572,16 +572,17 @@ static int execute_sysw(const char *sysw)
        wlen = write(fd, value, len);
        myerrno = errno;
        close(fd);
-       free(s);
 
        if (ignore_error)
-               return 0;
+               goto __end;
 
        if (wlen != (ssize_t)len) {
                uc_error("unable to write '%s' to '%s': %s", value, path, strerror(myerrno));
                return -EINVAL;
        }
 
+__end:
+       free(s);
        return 0;
 }