kernel stack memory

Arun KS getarunks at gmail.com
Thu Sep 13 04:29:59 EDT 2012


Hello Shubham,

On Thu, Sep 13, 2012 at 12:15 PM, shubham sharma <shubham20006 at gmail.com>wrote:

> Hi,
>
> As far as i know, the size of stack allocated in the kernel space is
> 8Kb for each process. But in case i use more than 8Kb of memory from
> the stack then what will happen? I think that in that case the system
> would crash because i am accessing an illegal memory area. I wrote
> kernel module in which i defined an integer array whose size was 8000.
> But still it did not crash my system. Why?
>
> The module i wrote was as follows:
>
> #include <linux/kernel.h>
> #include <linux/module.h>
>
> int __init init_my_module(void)
> {
>         int arr[8000];
>         printk("%s:%d\tmodule initilized\n", __func__, __LINE__);
>         arr[1] = 1;
>         arr[4000] = 1;
>         arr[7999] = 1;
>
Instead do a memset.
memset(arr, 0, 8192);

If you do this the current calling process thread_info will be set to zero.
This should cause a crash.

Thanks,
Arun



>         printk("%s:%d\tarr[1]:%d, arr[4000]:%d, arr[7999]:%d\n", __func__,
> __LINE__, arr[1], arr[4000], arr[7999]);
>         return 0;
> }
>
> void __exit cleanup_my_module(void)
> {
>         printk("exiting\n");
>         return;
> }
>
> module_init(init_my_module);
> module_exit(cleanup_my_module);
>
> MODULE_LICENSE("GPL");
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120913/1cb5e523/attachment-0001.html 


More information about the Kernelnewbies mailing list