mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	Make -1 mean "current group/user" so that some platform dependent calls
can be centralised. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1113 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
		
							parent
							
								
									7ba93ebae2
								
							
						
					
					
						commit
						a3e7595ac1
					
				
					 4 changed files with 7 additions and 3 deletions
				
			
		| 
						 | 
					@ -249,7 +249,7 @@ static int create_runtime_dir(void) {
 | 
				
			||||||
     * per-user mode. We create the runtime directory somewhere in
 | 
					     * per-user mode. We create the runtime directory somewhere in
 | 
				
			||||||
     * /tmp/ with the current UID/GID */
 | 
					     * /tmp/ with the current UID/GID */
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (pa_make_secure_dir(fn, 0700, getuid(), getgid()) < 0) {
 | 
					    if (pa_make_secure_dir(fn, 0700, (uid_t)-1, (gid_t)-1) < 0) {
 | 
				
			||||||
        pa_log(__FILE__": Failed to create '%s': %s", fn, pa_cstrerror(errno));
 | 
					        pa_log(__FILE__": Failed to create '%s': %s", fn, pa_cstrerror(errno));
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -254,7 +254,7 @@ int pa__init(pa_core *c, pa_module*m) {
 | 
				
			||||||
    /* This socket doesn't reside in our own runtime dir but in
 | 
					    /* This socket doesn't reside in our own runtime dir but in
 | 
				
			||||||
     * /tmp/.esd/, hence we have to create the dir first */
 | 
					     * /tmp/.esd/, hence we have to create the dir first */
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (pa_make_secure_parent_dir(u->socket_path, c->is_system_instance ? 0755 : 0700, getuid(), getgid()) < 0) {
 | 
					    if (pa_make_secure_parent_dir(u->socket_path, c->is_system_instance ? 0755 : 0700, (uid_t)-1, (gid_t)-1) < 0) {
 | 
				
			||||||
        pa_log(__FILE__": Failed to create socket directory: %s\n", pa_cstrerror(errno));
 | 
					        pa_log(__FILE__": Failed to create socket directory: %s\n", pa_cstrerror(errno));
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -707,7 +707,7 @@ int pa_context_connect(
 | 
				
			||||||
            char lf[PATH_MAX];
 | 
					            char lf[PATH_MAX];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            pa_runtime_path(AUTOSPAWN_LOCK, lf, sizeof(lf));
 | 
					            pa_runtime_path(AUTOSPAWN_LOCK, lf, sizeof(lf));
 | 
				
			||||||
            pa_make_secure_parent_dir(lf, 0700, getuid(), getgid());
 | 
					            pa_make_secure_parent_dir(lf, 0700, (uid_t)-1, (gid_t)-1);
 | 
				
			||||||
            assert(c->autospawn_lock_fd <= 0);
 | 
					            assert(c->autospawn_lock_fd <= 0);
 | 
				
			||||||
            c->autospawn_lock_fd = pa_lock_lockfile(lf);
 | 
					            c->autospawn_lock_fd = pa_lock_lockfile(lf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -157,6 +157,10 @@ int pa_make_secure_dir(const char* dir, mode_t m, uid_t uid, gid_t gid) {
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_CHOWN
 | 
					#ifdef HAVE_CHOWN
 | 
				
			||||||
 | 
					    if (uid == (uid_t)-1)
 | 
				
			||||||
 | 
					        uid = getuid();
 | 
				
			||||||
 | 
					    if (gid == (gid_t)-1)
 | 
				
			||||||
 | 
					        gid = getgid();
 | 
				
			||||||
    chown(dir, uid, gid);
 | 
					    chown(dir, uid, gid);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue