Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.1:Update
alsa-utils
0011-arecord-Remove-only-regular-files.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0011-arecord-Remove-only-regular-files.patch of Package alsa-utils
From 5f0fc49a3ab9e9a66eb7a74582829c21556506a1 Mon Sep 17 00:00:00 2001 From: Alexander Volkov <a.volkov@rusbitech.ru> Date: Mon, 21 Sep 2015 16:05:57 +0300 Subject: [PATCH] arecord: Remove only regular files arecord removes a file before writing into it. It's not appropriate in some cases. For example, if you a pass a symlink to a file, then the symlink will be removed while the user expects to record into the symlink's target. Another case is recording into the device file. Some modems provide a tty device file as a voice device. And it's not possible to write into it under root with arecord, because it removes the device file. So check the type of a file before writing into it and remove only regular files. Signed-off-by: Alexander Volkov <a.volkov@rusbitech.ru> Signed-off-by: Takashi Iwai <tiwai@suse.de> --- aplay/aplay.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/aplay/aplay.c b/aplay/aplay.c index 459f7dd6f667..1b2cdfc527ca 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -2929,6 +2929,7 @@ static void capture(char *orig_name) char *name = orig_name; /* current filename */ char namebuf[PATH_MAX+1]; off64_t count, rest; /* number of bytes to capture */ + struct stat statbuf; /* get number of bytes to capture */ count = calc_count(); @@ -2973,7 +2974,10 @@ static void capture(char *orig_name) } /* open a new file */ - remove(name); + if (!lstat(name, &statbuf)) { + if (S_ISREG(statbuf.st_mode)) + remove(name); + } fd = safe_open(name); if (fd < 0) { perror(name); -- 2.5.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor