From: Serge Hallyn Date: Tue, 17 Dec 2013 16:34:25 +0000 (-0600) Subject: lxc_user_nic changes X-Git-Tag: lxc-1.0.0.beta1~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c073c14723936edc6bd60dc8844036dc6d3c4c0c;p=thirdparty%2Flxc.git lxc_user_nic changes 1. catch a case if allowed number of nics is 0 (as opposed to no entry), which previously would have allowed the user to sneak in one entry. 2. return false, not true, if something went heywire with creating the /sys/class/net/$nic path to open. Signed-off-by: Serge Hallyn --- diff --git a/src/lxc/lxc_user_nic.c b/src/lxc/lxc_user_nic.c index ac7a242c9..16f1495c3 100644 --- a/src/lxc/lxc_user_nic.c +++ b/src/lxc/lxc_user_nic.c @@ -189,7 +189,7 @@ static bool nic_exists(char *nic) ret = snprintf(path, MAXPATHLEN, "/sys/class/net/%s", nic); if (ret < 0 || ret >= MAXPATHLEN) // should never happen! - return true; + return false; ret = stat(path, &sb); if (ret != 0) return false; @@ -379,6 +379,9 @@ static bool get_nic_if_avail(int fd, char *me, int pid, char *intype, char *br, cull_entries(fd, me, intype, br); + if (allowed == 0) + return false; + fstat(fd, &sb); len = sb.st_size; if (len != 0) { @@ -393,7 +396,6 @@ 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); /* me ' ' intype ' ' br ' ' *nicname + '\n' + '\0' */ slen = strlen(me) + strlen(intype) + strlen(br) + strlen(*nicname) + 5;