Date: Thu, 15 Jul 2010 13:11:13 -0600 From: Jamie Gritton <jamie@FreeBSD.org> To: Stanislav Uzunchev <uzunchev.stanislav@gmail.com> Cc: jail@FreeBSD.org, hackers@FreeBSD.org Subject: Re: libjail issues. Message-ID: <4C3F5D51.6000903@FreeBSD.org> In-Reply-To: <AANLkTilD-_sjxHkIrbgmQtUhxq0Dtj_JWrOWuurZW1tb@mail.gmail.com> References: <AANLkTilD-_sjxHkIrbgmQtUhxq0Dtj_JWrOWuurZW1tb@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 07/15/10 04:12, Stanislav Uzunchev wrote: > I have found something very strange to me... It is a problem with static > allocating size of buffer where jail param is going to be coppied, using > jail_getv function from the libjails. Well for example: > > buff[size]; > jail_getv(0, "name", "1", "host.hostname", buff, NULL); > > the result for size = 64; is bsnmp.test, size = 257; is bsnmp.test, size = > 256; is bs1 ? > > #sysctl -a | grep "security.jail.param.host.hostname:" > 256 > > #jls > JID Hostname > 1 bsnmp.test > > #jls -n | grep "bs1" > returns no match. > > This is really confusing me. That's a bug in jail_getv, which I'm committing the fix for now. Unfortunately, it's too late to get it in the 8.1 release, but it will at least be in future releases. The issue is that jail_getv wrongly allocated temporary space based on the length of the parameters passed in, which don't even have values yet. The different array sizes in your sample code would coincidentally locate the "buff" array with different garbage contents, leading to different behavior with the bug. > Also i will take suggestions, what is the best way, to get and set all > value/params using the jailparam struct. > I am trying first to set the name or jid, and after that getting the values > for the rest parameters with jail_getv, but i face some problems setting > jp_value since it is type (void *). You don't value to set jp_value directly, but use the jailparam_import function. That will set jp_value correctly based on the parameter's type. - Jamie
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C3F5D51.6000903>