All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] alsactl: Store lockfile in /tmp
@ 2014-05-06 11:57 Julian Scheel
  2014-05-06 14:53 ` Jaroslav Kysela
  0 siblings, 1 reply; 7+ messages in thread
From: Julian Scheel @ 2014-05-06 11:57 UTC (permalink / raw)
  To: alsa-devel; +Cc: Julian Scheel

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@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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-05-06 18:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-06 11:57 [PATCH] alsactl: Store lockfile in /tmp Julian Scheel
2014-05-06 14:53 ` Jaroslav Kysela
2014-05-06 14:55   ` Jaroslav Kysela
2014-05-06 15:00   ` Julian Scheel
2014-05-06 16:44     ` Takashi Iwai
2014-05-06 15:05   ` Takashi Iwai
2014-05-06 18:55     ` Julian Scheel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.