On Thu, Sep 13, 2012 at 12:15 PM, shubham sharma <shubham20006@xxxxxxxxx> 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
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@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies