Skip to content

Commit

Permalink
lxc-user-nic: handle failure in create_nic
Browse files Browse the repository at this point in the history
Failures were being ignored, leading up to an eventual segfault.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
  • Loading branch information
hallyn committed Apr 28, 2014
1 parent dc421f3 commit a056691
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/lxc/lxc_user_nic.c
Expand Up @@ -286,13 +286,16 @@ static bool create_nic(char *nic, char *br, int pid, char **cnic)
* *dest will container the name (vethXXXXXX) which is attached
* on the host to the lxc bridge
*/
static void get_new_nicname(char **dest, char *br, int pid, char **cnic)
static bool get_new_nicname(char **dest, char *br, int pid, char **cnic)
{
char template[IFNAMSIZ];
snprintf(template, sizeof(template), "vethXXXXXX");
*dest = lxc_mkifname(template);

create_nic(*dest, br, pid, cnic);
if (!create_nic(*dest, br, pid, cnic)) {
return false;
}
return true;
}

static bool get_nic_from_line(char *p, char **nic)
Expand Down Expand Up @@ -419,7 +422,8 @@ static bool get_nic_if_avail(int fd, char *me, int pid, char *intype, char *br,
return false;
}

get_new_nicname(nicname, br, pid, cnic);
if (!get_new_nicname(nicname, br, pid, cnic))
return false;
/* me ' ' intype ' ' br ' ' *nicname + '\n' + '\0' */
slen = strlen(me) + strlen(intype) + strlen(br) + strlen(*nicname) + 5;
newline = alloca(slen);
Expand Down

0 comments on commit a056691

Please sign in to comment.