Module Name: src
Committed By: isaki
Date: Sat May 4 08:27:30 UTC 2019
Modified Files:
src/usr.bin/audio/play: play.c
Log Message:
Use err(3)/errx(3) properly to avoid "write failed: Undefined error: 0".
To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 src/usr.bin/audio/play/play.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/audio/play/play.c
diff -u src/usr.bin/audio/play/play.c:1.56 src/usr.bin/audio/play/play.c:1.57
--- src/usr.bin/audio/play/play.c:1.56 Fri Nov 16 13:55:17 2018
+++ src/usr.bin/audio/play/play.c Sat May 4 08:27:30 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: play.c,v 1.56 2018/11/16 13:55:17 mlelstv Exp $ */
+/* $NetBSD: play.c,v 1.57 2019/05/04 08:27:30 isaki Exp $ */
/*
* Copyright (c) 1999, 2000, 2001, 2002, 2010 Matthew R. Green
@@ -28,7 +28,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: play.c,v 1.56 2018/11/16 13:55:17 mlelstv Exp $");
+__RCSID("$NetBSD: play.c,v 1.57 2019/05/04 08:27:30 isaki Exp $");
#endif
@@ -224,6 +224,7 @@ play(char *file)
off_t datasize = 0;
ssize_t hdrlen;
int fd;
+ int nw;
if (file[0] == '-' && file[1] == 0) {
play_fd("standard input", STDIN_FILENO);
@@ -283,13 +284,19 @@ play(char *file)
}
while ((uint64_t)datasize > bufsize) {
- if ((size_t)write(audiofd, addr, bufsize) != bufsize)
+ nw = write(audiofd, addr, bufsize);
+ if (nw == -1)
err(1, "write failed");
+ if ((size_t)nw != bufsize)
+ errx(1, "write failed");
addr = (char *)addr + bufsize;
datasize -= bufsize;
}
- if ((off_t)write(audiofd, addr, datasize) != datasize)
+ nw = write(audiofd, addr, datasize);
+ if (nw == -1)
err(1, "final write failed");
+ if ((off_t)nw != datasize)
+ errx(1, "final write failed");
if (ioctl(audiofd, AUDIO_DRAIN) < 0 && !qflag)
warn("audio drain ioctl failed");
@@ -341,8 +348,10 @@ play_fd(const char *file, int fd)
if (datasize != 0 && dataout + nr > datasize)
nr = datasize - dataout;
nw = write(audiofd, buffer, nr);
+ if (nw == -1)
+ err(1, "audio device write failed");
if (nw != nr)
- goto write_error;
+ errx(1, "audio device write failed");
dataout += nw;
nr = read(fd, buffer, bufsize);
if (nr == -1)
@@ -356,8 +365,6 @@ play_fd(const char *file, int fd)
return;
read_error:
err(1, "read of standard input failed");
-write_error:
- err(1, "audio device write failed");
}
/*