Quoting Stéphane Graber (stgra...@ubuntu.com):
> On Fri, Aug 16, 2013 at 10:36:58AM -0500, Serge Hallyn wrote:
> > Quoting Stéphane Graber (stgra...@ubuntu.com):
> > > initstate/random doesn't work on bionic, srand/rand works on everything,
> > > so let's use that.
> > 
> > Is rand_r available on bionic?
> > 
> > rand() isn't thread-safe.
> 
> Unfortunately no, I actually don't think Bionic has any of the _r
> functions.
> 
> Is it actually a problem in this case? It looks like the worst that
> could happen is that the random number generator gets re-seeded from
> urandom between two calls, which would just make it even more random,
> no?

That was my guess based on the manpage, but I didn't look at the
source.  Sounds compelling,

Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com>

> > > Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
> > > ---
> > >  src/lxc/conf.c | 5 ++---
> > >  1 file changed, 2 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/src/lxc/conf.c b/src/lxc/conf.c
> > > index 867a150..3d99469 100644
> > > --- a/src/lxc/conf.c
> > > +++ b/src/lxc/conf.c
> > > @@ -288,7 +288,6 @@ static char *mkifname(char *template)
> > >   int i = 0;
> > >   FILE *urandom;
> > >   unsigned int seed;
> > > - char randstate[2048];
> > >   struct ifaddrs *ifaddr, *ifa;
> > >   int ifexists = 0;
> > >  
> > > @@ -304,7 +303,7 @@ static char *mkifname(char *template)
> > >   }
> > >   else
> > >           seed = time(0);
> > > - initstate(seed, randstate, 256);
> > > + srand(seed);
> > >  
> > >   /* Generate random names until we find one that doesn't exist */
> > >   while(1) {
> > > @@ -316,7 +315,7 @@ static char *mkifname(char *template)
> > >  
> > >           for (i = 0; i < strlen(name); i++) {
> > >                   if (name[i] == 'X') {
> > > -                         name[i] = padchar[random() % (strlen(padchar) - 
> > > 1)];
> > > +                         name[i] = padchar[rand() % (strlen(padchar) - 
> > > 1)];
> > >                   }
> > >           }
> > >  
> > > -- 
> > > 1.8.3.2
> > > 
> > > 
> > > ------------------------------------------------------------------------------
> > > Get 100% visibility into Java/.NET code with AppDynamics Lite!
> > > It's a free troubleshooting tool designed for production.
> > > Get down to code-level detail for bottlenecks, with <2% overhead. 
> > > Download for free and get started troubleshooting in minutes. 
> > > http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
> > > _______________________________________________
> > > Lxc-devel mailing list
> > > Lxc-devel@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/lxc-devel
> 
> -- 
> Stéphane Graber
> Ubuntu developer
> http://www.ubuntu.com



------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to