Vladimir B.  Grebenschikov wrote:
> ? Wed, 09.10.2002, ? 01:03, Vladimir B. Grebenschikov ???????:
> > ? Tue, 08.10.2002, ? 22:25, Maxime Henrion ???????: 
> > > Vladimir B.  Grebenschikov wrote:
> > > > Hi 
> > > > 
> > > > Attached diff introduces new ddb interface - access to sysctl interface 
> > > [...]
> > > 
> > > Looks like this would be very useful.  I have a few comments, mainly
> > > about style though.
> > 
> > Attached fixed patch 
> 
> sorry, I have attached wong file 
> 
>  
> > > - There is a TOK_STRING_SIZE macro which defines the size of the the
> > >   db_tok_string variable.  Use it instead of declaring several 1k
> > >   variables on the stack.
> > 
> > It is not token buffers - it is buffers for sysctl data interchange,
> > const 1024 changed to SYSCTL_DATA_BUFSIZE define. 

Yes, that's better, but you still do a strcpy() which assumes that
SYSCTL_DATA_BUFSIZE >= TOK_STRING_SIZE, and there are still quite big
variables on the stack, which can be a problem if someone invokes ddb
while deep in the stack.

What I meant in my previous mail is that you could malloc() these
objects instead of putting them on the stack.  Also, you don't need
buffers that big since the size you need is bounded at max(sizeof(int),
TOK_STRING_SIZE), which is likely to be TOK_STRING_SIZE :-).

> > > - I'm not sure if using the context of the init process to do sysctl
> > >   calls is the right way to go.  However, it is not very clear what you
> > >   should use to do this, at least to me.
> > 
> > kernel_sysctl need thread pointer, it may be used in sysctl handlers. 

Yup, noone contested the fact that you need a thread pointer, the
problem is that FIRST_THREAD_IN_PROC(initproc) is probably not the good
one to use, and there probably isn't any good one to use at all.
However, it might be acceptable to do it the way you do now.

Cheers,
Maxime

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to