dom0+vm/qrexec-services: pass remote domain via env variable not argument
Most qrexec services doesn't use remote domain name, as policy is enforced earlier. So pass it in way that will allow use of generic command as qrexec service.
This commit is contained in:
		
							parent
							
								
									6dd31ff87e
								
							
						
					
					
						commit
						51ad63e26f
					
				@ -51,13 +51,19 @@ int main(int argc, char ** argv)
 | 
				
			|||||||
	char *incoming_dir;
 | 
						char *incoming_dir;
 | 
				
			||||||
	int pipefds[2];
 | 
						int pipefds[2];
 | 
				
			||||||
	int uid;
 | 
						int uid;
 | 
				
			||||||
 | 
						char *remote_domain;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pipe(pipefds);
 | 
						pipe(pipefds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	uid = prepare_creds_return_uid("user");
 | 
						uid = prepare_creds_return_uid("user");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						remote_domain = getenv("QREXEC_REMOTE_DOMAIN");
 | 
				
			||||||
 | 
						if (!remote_domain) {
 | 
				
			||||||
 | 
							gui_fatal("Cannot get remote domain name");
 | 
				
			||||||
 | 
							exit(1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	mkdir(INCOMING_DIR_ROOT, 0700);
 | 
						mkdir(INCOMING_DIR_ROOT, 0700);
 | 
				
			||||||
	asprintf(&incoming_dir, "%s/from-%s", INCOMING_DIR_ROOT, argv[1]);
 | 
						asprintf(&incoming_dir, "%s/from-%s", INCOMING_DIR_ROOT, remote_domain);
 | 
				
			||||||
	mkdir(incoming_dir, 0700);
 | 
						mkdir(incoming_dir, 0700);
 | 
				
			||||||
	if (chdir(incoming_dir))
 | 
						if (chdir(incoming_dir))
 | 
				
			||||||
		gui_fatal("Error chdir to %s", incoming_dir); 
 | 
							gui_fatal("Error chdir to %s", incoming_dir); 
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user