Jaromir Capik 3188d51
--- esound-0.2.36.orig/util.c
Jaromir Capik 3188d51
+++ esound-0.2.36/util.c
Jaromir Capik 3188d51
@@ -5,6 +5,7 @@
Jaromir Capik 3188d51
 #include <stdlib.h>
Jaromir Capik 3188d51
 #include <string.h>
Jaromir Capik 3188d51
 #include <unistd.h>
Jaromir Capik 3188d51
+#include <stdio.h>
Jaromir Capik 3188d51
 
Jaromir Capik 3188d51
 /* Run-time check for IPv6 support */
Jaromir Capik 3188d51
 int 
Jaromir Capik 3188d51
@@ -23,22 +24,18 @@
Jaromir Capik 3188d51
 const char*
Jaromir Capik 3188d51
 esd_get_socket_dirname (void) 
Jaromir Capik 3188d51
 {
Jaromir Capik 3188d51
-	const char *audiodev;
Jaromir Capik 3188d51
+	const char *audiodev = NULL;
Jaromir Capik 3188d51
 	static char *dirname = NULL;
Jaromir Capik 3188d51
 
Jaromir Capik 3188d51
-	if (dirname == NULL) {
Jaromir Capik 3188d51
-		if (!(audiodev = getenv("AUDIODEV"))) {
Jaromir Capik 3188d51
-			audiodev = "";
Jaromir Capik 3188d51
-		} else {
Jaromir Capik 3188d51
-			char *newdev = strrchr(audiodev, '/');
Jaromir Capik 3188d51
-			if (newdev != NULL) {
Jaromir Capik 3188d51
-				audiodev = newdev++;
Jaromir Capik 3188d51
-			}
Jaromir Capik 3188d51
-		}
Jaromir Capik 3188d51
-		dirname = malloc(strlen(audiodev) + sizeof("/tmp/.esd"));
Jaromir Capik 3188d51
-		strcpy(dirname, "/tmp/.esd");
Jaromir Capik 3188d51
-		strcat(dirname, audiodev);
Jaromir Capik 3188d51
-	}
Jaromir Capik 3188d51
+        if ((audiodev = getenv("AUDIODEV"))) {
Jaromir Capik 3188d51
+                char *newdev = strrchr(audiodev, '/');
Jaromir Capik 3188d51
+                if (newdev != NULL) {
Jaromir Capik 3188d51
+                        audiodev = newdev++;
Jaromir Capik 3188d51
+                }
Jaromir Capik 3188d51
+        } else
Jaromir Capik 3188d51
+            audiodev = "";
Jaromir Capik 3188d51
+        dirname = malloc(strlen(audiodev) +  40);
Jaromir Capik 3188d51
+        sprintf (dirname, "/tmp/.esd%s-%i", audiodev, getuid());
Jaromir Capik 3188d51
 
Jaromir Capik 3188d51
 	return dirname;
Jaromir Capik 3188d51
 }