This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: nscd paranoia mode restart functionality


On 02/25/2015 01:45 PM, Florian Weimer wrote:
> Does anybody know what's going on in the restart function in
> nscd/connections.c?
> 
>   /* First determine the parameters.  We do not use the parameters
>      passed to main() since in case nscd is started by running the
>      dynamic linker this will not work.  Yes, this is not the usual
>      case but nscd is part of glibc and we occasionally do this.  */
>   size_t buflen = 1024;
>   char *buf = alloca (buflen);
>   size_t readlen = 0;
>   int fd = open ("/proc/self/cmdline", O_RDONLY);
> â
>   /* Parse the command line.  Worst case scenario: every two
>      characters form one parameter (one character plus NUL).  */
>   char **argv = alloca ((readlen / 2 + 1) * sizeof (argv[0]));
>   int argc = 0;

What the comment tries to say is this: Without this logic, the
reinvocation will run without the wrapper.

I wonder how this logic interferes with valgrind and similar tools.

> Can we get rid of the code instead pass around the argv vector?

Question still remains.

-- 
Florian Weimer / Red Hat Product Security


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]