]> git.alsa-project.org Git - alsa-utils.git/commitdiff
amidi, aseqnet: handle write errors
authorJaroslav Kysela <perex@perex.cz>
Fri, 5 Mar 2021 20:50:28 +0000 (21:50 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 5 Mar 2021 20:50:28 +0000 (21:50 +0100)
BugLink: https://github.com/alsa-project/alsa-utils/issues/17
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
amidi/amidi.c
seq/aseqnet/aseqnet.c

index cde4697c7e30c93ea417e80268554709bd8c54d4..90e77501a04b263ab45504dde1be75782c0d23f5 100644 (file)
@@ -688,8 +688,11 @@ int main(int argc, char *argv[])
                                continue;
                        read += length;
 
-                       if (receive_file != -1)
-                               write(receive_file, buf, length);
+                       if (receive_file != -1) {
+                               ssize_t wlength = write(receive_file, buf, length);
+                               if (wlength != length)
+                                       error("write error: %s", wlength < 0 ? strerror(errno) : "short");
+                       }
                        if (dump) {
                                for (i = 0; i < length; ++i)
                                        print_byte(buf[i]);
index 70a1cfd6bfe6f2896aadd1672997fc0a483587d1..ebdea0b49acf25c66a91d3a424ffb772eba0047c 100644 (file)
@@ -491,8 +491,11 @@ static void flush_writebuf(void)
        if (cur_wrlen) {
                int i;
                for (i = 0; i < max_connection; i++) {
-                       if (netfd[i] >= 0)
-                               write(netfd[i], writebuf, cur_wrlen);
+                       if (netfd[i] >= 0) {
+                               ssize_t wrlen = write(netfd[i], writebuf, cur_wrlen);
+                               if (wrlen != (ssize_t)cur_wrlen)
+                                       fprintf(stderr, "write error: %s", wrlen < 0 ? strerror(errno) : "short");
+                       }
                }
                cur_wrlen = 0;
        }