[lxc-devel] [PATCH] lxc-attach: Clear environment and set container=lxc

Stéphane Graber stgraber at ubuntu.com
Thu Mar 21 15:12:33 UTC 2013


On 03/20/2013 01:31 PM, Serge Hallyn wrote:
> Quoting David Ward (david.ward at ll.mit.edu):
>> The child process's environment should be manipulated the same way
>> by lxc-attach as it would be by lxc-start or lxc-execute.
>>
>> Signed-off-by: David Ward <david.ward at ll.mit.edu>
> 
> Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

And pushed to staging. Thanks

>> ---
>>  src/lxc/attach.c     |   15 +++++++++++++++
>>  src/lxc/attach.h     |    1 +
>>  src/lxc/lxc_attach.c |    5 +++++
>>  3 files changed, 21 insertions(+), 0 deletions(-)
>>
>> diff --git a/src/lxc/attach.c b/src/lxc/attach.c
>> index 2f32025..12adadb 100644
>> --- a/src/lxc/attach.c
>> +++ b/src/lxc/attach.c
>> @@ -277,6 +277,21 @@ int lxc_attach_drop_privs(struct lxc_proc_context_info *ctx)
>>  	return 0;
>>  }
>>  
>> +int lxc_attach_set_environment()
>> +{
>> +	if (clearenv()) {
>> +		SYSERROR("failed to clear environment");
>> +		/* don't error out though */
>> +	}
>> +
>> +	if (putenv("container=lxc")) {
>> +		SYSERROR("failed to set environment variable");
>> +		return -1;
>> +	}
>> +
>> +	return 0;
>> +}
>> +
>>  char *lxc_attach_getpwshell(uid_t uid)
>>  {
>>  	/* local variables */
>> diff --git a/src/lxc/attach.h b/src/lxc/attach.h
>> index 6bbfb42..404ff4c 100644
>> --- a/src/lxc/attach.h
>> +++ b/src/lxc/attach.h
>> @@ -37,6 +37,7 @@ extern struct lxc_proc_context_info *lxc_proc_get_context_info(pid_t pid);
>>  extern int lxc_attach_to_ns(pid_t other_pid, int which);
>>  extern int lxc_attach_remount_sys_proc();
>>  extern int lxc_attach_drop_privs(struct lxc_proc_context_info *ctx);
>> +extern int lxc_attach_set_environment();
>>  
>>  extern char *lxc_attach_getpwshell(uid_t uid);
>>  
>> diff --git a/src/lxc/lxc_attach.c b/src/lxc/lxc_attach.c
>> index 678b76d..7fd76ee 100644
>> --- a/src/lxc/lxc_attach.c
>> +++ b/src/lxc/lxc_attach.c
>> @@ -411,6 +411,11 @@ int main(int argc, char *argv[])
>>  			return -1;
>>  		}
>>  
>> +		if (lxc_attach_set_environment()) {
>> +			ERROR("could not set environment");
>> +			return -1;
>> +		}
>> +
>>  		/* tell parent we are done setting up the container and wait
>>  		 * until we have been put in the container's cgroup, if
>>  		 * applicable */
>> -- 
>> 1.7.1
>>
>>
>> ------------------------------------------------------------------------------
>> Everyone hates slow websites. So do we.
>> Make your web apps faster with AppDynamics
>> Download AppDynamics Lite for free today:
>> http://p.sf.net/sfu/appdyn_d2d_mar
>> _______________________________________________
>> Lxc-devel mailing list
>> Lxc-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/lxc-devel
> 
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_mar
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel
> 


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 901 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20130321/5cb0fc27/attachment.pgp>


More information about the lxc-devel mailing list