summaryrefslogtreecommitdiffstats
path: root/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-multimedia/alsa/alsa-utils/0001-aplay-Fix-invalid-file-size-check-for-non-regular-fi.patch
diff options
context:
space:
mode:
authorToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp>2020-03-30 09:24:26 +0900
committerToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp>2020-03-30 09:24:26 +0900
commit5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch)
treeb4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /bsp/meta-rcar/meta-rcar-gen3-adas/recipes-multimedia/alsa/alsa-utils/0001-aplay-Fix-invalid-file-size-check-for-non-regular-fi.patch
parent706ad73eb02caf8532deaf5d38995bd258725cb8 (diff)
agl-basesystem
Diffstat (limited to 'bsp/meta-rcar/meta-rcar-gen3-adas/recipes-multimedia/alsa/alsa-utils/0001-aplay-Fix-invalid-file-size-check-for-non-regular-fi.patch')
-rw-r--r--bsp/meta-rcar/meta-rcar-gen3-adas/recipes-multimedia/alsa/alsa-utils/0001-aplay-Fix-invalid-file-size-check-for-non-regular-fi.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-multimedia/alsa/alsa-utils/0001-aplay-Fix-invalid-file-size-check-for-non-regular-fi.patch b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-multimedia/alsa/alsa-utils/0001-aplay-Fix-invalid-file-size-check-for-non-regular-fi.patch
new file mode 100644
index 00000000..586f9731
--- /dev/null
+++ b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-multimedia/alsa/alsa-utils/0001-aplay-Fix-invalid-file-size-check-for-non-regular-fi.patch
@@ -0,0 +1,36 @@
+From da4d5bd53a1a57d1b39318b83d3280fbcd78e9f6 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 15 May 2018 22:17:01 +0200
+Subject: [PATCH] aplay: Fix invalid file size check for non-regular files
+
+aplay tries to check the file size via fstat() at parsing the format
+headers and avoids parsing when the size is shorter than the given
+size. This works fine for regular files, but when a special file like
+pipe is passed, it fails, eventually leading to the fallback mode
+wrongly.
+
+A proper fix is to do this sanity check only for a regular file.
+
+Reported-by: Jay Foster <jay@systech.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+ aplay/aplay.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/aplay/aplay.c b/aplay/aplay.c
+index bbd7fff..63ec9ef 100644
+--- a/aplay/aplay.c
++++ b/aplay/aplay.c
+@@ -2821,7 +2821,8 @@ static int read_header(int *loaded, int header_size)
+
+ /* don't be adventurous, get out if file size is smaller than
+ * requested header size */
+- if (buf.st_size < header_size)
++ if ((buf.st_mode & S_IFMT) == S_IFREG &&
++ buf.st_size < header_size)
+ return -1;
+
+ if (*loaded < header_size) {
+--
+2.7.4
+