Re: Re: what`s wrong?

From: Huo Zhigang (zghuo@gatekeeper.ncic.ac.cn)
Date: Thu Apr 25 2002 - 04:12:21 EST


>On Apr 24, 2002 18:06 +0200, il boba wrote:
>> Is there anybody that can help me understand what`s wrong with this code?

>Yes, easily spotted a major problem without even reading the whole
>thing.

>> #define BUFSIZ 8192
>>
>> int init_module()
>> {
>> int err_frame[BUFSIZ];
>
>The entire kernel stack is only 8kB in size. You have already killed
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>a bunch of random memory by allocating this much memory on the stack.
>You allocated 4*8192 = 32kB on the stack here.
  
   Sure, the kernel stack is 8192 Bytes, but "err_frame[]" is a local variable. Does the kernel allocate memory for "err_frame[]" from the stack??

>> int init_err_frame(int err_frame[]) {
>> int i, k = 0, j = 0;
>> char buffer[BUFSIZ];
>
>Another 8kB on the stack here - further random corruption.
   Here, I think, err_frame[] as a function parameter will take 8K in the kernel stack.
   Am I correct?
  
   Thank you.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Apr 30 2002 - 22:00:10 EST