On Wed, Jul 12, 2017 at 09:38:34AM -0700, Stephen Hemminger wrote:
> On Mon, 10 Jul 2017 13:19:12 +0200
> Phil Sutter wrote:
>
> > +static bool is_basename(const char *name)
> > +{
> > + char *name_dup = strdup(name);
> > + bool rc = true;
> > +
> > + if (!name_dup)
> > + return f
On Mon, 10 Jul 2017 13:19:12 +0200
Phil Sutter wrote:
> +static bool is_basename(const char *name)
> +{
> + char *name_dup = strdup(name);
> + bool rc = true;
> +
> + if (!name_dup)
> + return false;
> +
> + if (strcmp(basename(name_dup), name))
> + rc = fa
On Mon, Jul 10, 2017 at 08:17:02AM -0700, Stephen Hemminger wrote:
> On Mon, 10 Jul 2017 13:19:12 +0200
> Phil Sutter wrote:
>
> > +static bool is_basename(const char *name)
> > +{
> > + char *name_dup = strdup(name);
> > + bool rc = true;
> > +
> > + if (!name_dup)
> > + return f
On Mon, 10 Jul 2017 13:19:12 +0200
Phil Sutter wrote:
> +static bool is_basename(const char *name)
> +{
> + char *name_dup = strdup(name);
> + bool rc = true;
> +
> + if (!name_dup)
> + return false;
> +
> + if (strcmp(basename(name_dup), name))
> + rc = fa
In order to keep track of created netns, 'ip netns' creates a mount
point inside NETNS_RUN_DIR. By not checking the user-specified name, it
allowed to create that mount point outside of NETNS_RUN_DIR and hence
lose track of it afterwards:
| # ip netns add ../../tmp/foobar
| # ip netns list
| # mou