Module: wine Branch: master Commit: 876189a405e18ae7229093c391583eeb1447c53e URL: http://source.winehq.org/git/wine.git/?a=commit;h=876189a405e18ae7229093c391...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Sep 16 12:43:07 2013 +0200
libwine: Don't add a user id to the server directory if not supported.
---
libs/wine/config.c | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/libs/wine/config.c b/libs/wine/config.c index 4e26212..d8c46be 100644 --- a/libs/wine/config.c +++ b/libs/wine/config.c @@ -36,7 +36,7 @@ #include "wine/library.h"
static const char server_config_dir[] = "/.wine"; /* config dir relative to $HOME */ -static const char server_root_prefix[] = "/tmp/.wine-"; /* prefix for server root dir */ +static const char server_root_prefix[] = "/tmp/.wine"; /* prefix for server root dir */ static const char server_dir_prefix[] = "/server-"; /* prefix for server dir */
static char *bindir; @@ -220,16 +220,18 @@ static char *get_runtime_argvdir( const char *argv0 ) /* initialize the server directory value */ static void init_server_dir( dev_t dev, ino_t ino ) { - char *p; + char *p, *root; + #ifdef HAVE_GETUID - const unsigned int uid = getuid(); + root = xmalloc( sizeof(server_root_prefix) + 12 ); + sprintf( root, "%s-%u", server_root_prefix, getuid() ); #else - const unsigned int uid = 0; + root = xstrdup( server_root_prefix ); #endif
- server_dir = xmalloc( sizeof(server_root_prefix) + 32 + sizeof(server_dir_prefix) + - 2*sizeof(dev) + 2*sizeof(ino) ); - sprintf( server_dir, "%s%u%s", server_root_prefix, uid, server_dir_prefix ); + server_dir = xmalloc( strlen(root) + sizeof(server_dir_prefix) + 2*sizeof(dev) + 2*sizeof(ino) + 2 ); + strcpy( server_dir, root ); + strcat( server_dir, server_dir_prefix ); p = server_dir + strlen(server_dir);
if (dev != (unsigned long)dev) @@ -241,6 +243,7 @@ static void init_server_dir( dev_t dev, ino_t ino ) sprintf( p, "%lx%08lx", (unsigned long)((unsigned long long)ino >> 32), (unsigned long)ino ); else sprintf( p, "%lx", (unsigned long)ino ); + free( root ); }
/* retrieve the default dll dir */