Thread (20 messages) 20 messages, 8 authors, 2012-01-20

Does Linux process exist information leakage?

From: SaNtosh kuLkarni <hidden>
Date: 2012-01-19 07:12:08

am not sure about my answer but regarding kmalloc if i am going out of
context ..but when u do a* kmalloc it doesnt clear *the memory obtained and
still holds the prvious contents...what happens in that case ..and as far
as i know when u take the case of reparenting ....during process
termination  exit_mm() is called to release the mm_struct held by this
process. If no other process
is using this address space, if the address space is not shared?the
kernel then destroys it and also there is the senario of zombie exit...i
mean PDT remains after parent exits....


2012/1/19 ??? [off-list ref]
Thanks?

It seems that the function do_page_fault() will finally call
fast_clear_page()<http://lxr.oss.org.cn/plain/source/arch/x86/lib/mmx_32.c#L125>
 or slow_zero_page()<http://lxr.oss.org.cn/plain/source/arch/x86/lib/mmx_32.c#L336> to
zero a new physical page for a process. So calling malloc() cannot get a
page used by another process which is dead already.

The assemble language is difficult to me, so please tell me if I am wrong.

2012/1/18 Fredrick [off-list ref]
quoted
When you malloc a memory or mmap a MAP_ANON memory, it is virtually
allocated. When you read or write to it, the process takes a page fault.
The page fault handler zeroes those memory and hands it to the process. So
I think there is no leak.

-Fredrick


On 01/11/2012 04:53 AM, ??? wrote:
quoted
Hi,
   My tutor asked me to test whether one process leaves information in
memory after it is dead. I tried to search some article about such thing
on the Internet but there seems to be no one discuss about it. And after
that, I tried to write some program in the User Mode to test it, using
fork() to create lots of processes and filling char 'a' into a 102400
bytes char array in each process. Then I used malloc() to get some
memory to seek char 'a' in a new one process or many new processes, but
failed. All memory I malloced was full of zero.
   As the man page of malloc said:"The memory is not initialized", I
believe that the memory which was got by malloc() could be used by other
process, and therefor information leakage exists. But how can I test it?
Or where can I get related information?
   Thanks!


______________________________**_________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.**org [off-list ref]
http://lists.kernelnewbies.**org/mailman/listinfo/**kernelnewbies<http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies>
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

-- 
*Regards,
Santosh Kulkarni*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120119/c7ece2d8/attachment.html 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help