Hi all,

I just found a bug (I think) in cygheap_fixup_in_child
function (cygheap.cc).
the effect is that, sometimes a command from a
script ends with the following error message

0 [main] openssl (17784)
child_copy: cygheap read copy failed, 0x0..0x8003D8538, done 0, windows
pid 17784, Win32 error 299

Digging a little bit in the code I found
that commit_size in cygheap_fixup_in_child is wrongly calculated if the
condition (child_proc_info->cygheap_max > (void *)
CYGHEAP_STORAGE_INITIAL) is met.

Currently, in that case, its value is
evaluated as

commit_size = allocsize
(child_proc_info->cygheap_max);

but I think this is wrong and it should
be

commit_size = allocsize (child_proc_info->cygheap_max) -
CYGHEAP_STORAGE_LOW;

The wrong value avoids the successful execution of
the following second VirtualAlloc and the the error in child_copy
function.

I tried to recompile the cygwin dll with the above change and
indeed the error disappears.

I'm I correct?
Paolo. 



VOUCHER CONNETTIVITÀ per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA 
ORA
 
https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb..


-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to