[alsa-devel] [PATCH] alsactl: Store lockfile in /tmp
Julian Scheel
julian at jusst.de
Tue May 6 13:57:07 CEST 2014
It can not be generally assumed that the directories in which asound.state
resides are writable. Instead using /tmp as location for lock files seems more
reliable.
Signed-off-by: Julian Scheel <julian at jusst.de>
---
alsactl/lock.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/alsactl/lock.c b/alsactl/lock.c
index 587a109..7ca3a09 100644
--- a/alsactl/lock.c
+++ b/alsactl/lock.c
@@ -36,17 +36,24 @@ static int state_lock_(const char *file, int lock, int timeout)
struct flock lck;
struct stat st;
char lcktxt[12];
+ char *filename;
char *nfile;
if (!do_lock)
return 0;
- nfile = malloc(strlen(file) + 6);
+
+ /* only use the actual filename, not the path */
+ filename = strrchr(file, '/');
+ if (!filename)
+ filename = file;
+
+ nfile = malloc(strlen(filename) + 10);
if (nfile == NULL) {
error("No enough memory...");
return -ENOMEM;
}
- strcpy(nfile, file);
- strcat(nfile, ".lock");
+
+ sprintf(nfile, "/tmp/%s.lock", filename);
lck.l_type = lock ? F_WRLCK : F_UNLCK;
lck.l_whence = SEEK_SET;
lck.l_start = 0;
--
1.9.2
More information about the Alsa-devel
mailing list