OpenVZ Forum


Home » Mailing lists » Users » trouble with veth device in combination with long veid
Re: trouble with veth device in combination with long veid [message #13898 is a reply to message #13889] Thu, 07 June 2007 09:32 Go to previous messageGo to previous message
dev is currently offline  dev
Messages: 1693
Registered: September 2005
Location: Moscow
Senior Member

Kristian F. Høgh wrote:
> On Wednesday den 6. June 2007 17:14:57 Nils Domrose wrote:
>
>>Hi,
>>
>>we are facing a problem with veth device in combination with long veids.
>>if we configure a veth device as described in the wiki, we are unable
>>to start that VE with the following error:
>>
>
>
> In veth.c a buffer with length 11 is allocated.
> The buffer is used as follows:
> snprintf(buf, sizeof(buf), "VEID=%d", veid);
>
> As 6 characters are used for static content (VEID= + '\0'), only 5
> characters are left. Your VEID (249104) is 6 characters long.
>
> Apply the following patch, and you should be running.
> (An alternative is to limit your VEID in the range 100 to <= 99999)
>
>
> --- a/src/lib/veth.c
> +++ b/src/lib/veth.c
> @@ -90,7 +90,7 @@ static int veth_dev_remove(vps_handler *h, envid_t veid, veth_dev *dev)
> static int run_vznetcfg(envid_t veid, veth_dev *dev)
> {
> int ret;
> - char buf[11];
> + char buf[12];
> char *argv[] = {VZNETCFG, "init", "veth", NULL, NULL};
> char *env[2];
>
> (Last line is empty)

In kernel if name is limited to 16 bytes, i.e. to 15 chars (plus zero).
4 chars for "veth", so 11 chars for number. VEID is int, so limited
to 2^32, which is no more then 10 chars length. So everything should
be fine except this silly bug in vzctl.

Why have you chosen 12 instead of 11?
AFAICS it should be sizeof("VEID=") + 10 + 1 (for \0) = 16

Thanks,
Kirill
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: OpenVZ to Virtozzo
Next Topic: /dev/tty0
Goto Forum:
  


Current Time: Sat Aug 23 08:36:12 GMT 2025

Total time taken to generate the page: 0.07054 seconds