Markus Gömmel wrote:
Sometimes resulted in an exception when AllocHeap() was called...
Regards
Markus Goemmel m.goemmel@compulab.de
Sorry, but the patch is wrong. The Wine list implementation makes sure that next and prev are always valid pointers, such that the list is circular. The only way to detect the end of the list is if entry->next == start. If one of the entries is NULL then this generally indicates either a use after free or some other kind of corruption of the memory used by the list. If the memory is in the heap then HeapValidate may help find the corruption.
Index: ChangeLog
RCS file: /home/wine/wine/ChangeLog,v retrieving revision 1.101 diff -u -u -p -r1.101 ChangeLog --- ChangeLog 9 Nov 2005 13:41:27 -0000 1.101 +++ ChangeLog 9 Nov 2005 16:17:58 -0000 @@ -1,3 +1,8 @@ +2005-11-09 Markus Goemmel m.goemmel@compulab.de
- include/wine/list.h
- list_remove() failed when removing first or last element
2005-11-09 Huw Davies huw@codeweavers.com
- dlls/wineps/ps.c:
One further note: on projects as big as Wine patching the ChangeLog is not practical as it would result in a lot of conflicts. Therefore, Alexandre Julliard automatically generates ChangeLog entries from CVS just before each release.
Hi,
Sorry, but the patch is wrong. The Wine list implementation makes sure that next and prev are always valid pointers, such that the list is circular. The only way to detect the end of the list is if entry->next == start. If one of the entries is NULL then this generally indicates either a use after free or some other kind of corruption of the memory used by the list. If the memory is in the heap then HeapValidate may help find the corruption.
If you say this, I will willingly believe it. I did some debugging searching for an exception which was caused by one of my applications, and at a certain point there are four calls of HeapAlloc(). Three of them worked great, but the forth failed cause elem->next was 0. So my idea was that its cause of it's the last entry. The other pointers looked really well. So do you think the is a heap corruption caused by my application or by some other part of Wine?
One further note: on projects as big as Wine patching the ChangeLog is not practical as it would result in a lot of conflicts. Therefore, Alexandre Julliard automatically generates ChangeLog entries from CVS just before each release.
Oh, I only did it cause its requested on http://www.winehq.com/site/sending_patches:
"When submitting patches, please: Include a ChangeLog entry with your name, email address and a description of what your patch does."
Did I understand something wrong here???
Cheers
Markus Gömmel m.goemmel@compulab.de
Le jeudi 10 novembre 2005 à 11:21 +0100, Markus Gömmel a écrit :
One further note: on projects as big as Wine patching the ChangeLog is not practical as it would result in a lot of conflicts. Therefore, Alexandre Julliard automatically generates ChangeLog entries from CVS just before each release.
Oh, I only did it cause its requested on http://www.winehq.com/site/sending_patches:
"When submitting patches, please: Include a ChangeLog entry with your name, email address and a description of what your patch does."
Did I understand something wrong here???
Just write something like:
Changelog: - fixes null pointer
in the e-mail you send the patch with.
Regards.
One further note: on projects as big as Wine patching the ChangeLog is not practical as it would result in a lot of conflicts. Therefore, Alexandre Julliard automatically generates ChangeLog entries from CVS just before each release.
Oh, I only did it cause its requested on http://www.winehq.com/site/sending_patches:
"When submitting patches, please: Include a ChangeLog entry with your name, email address and a description of what your patch does."
ChangeLog entry != ChangeLog patch :)
Cheers, Kuba