Towards pure wine: a step by step approach
dank at kegel.com
Thu Apr 17 10:20:15 CDT 2008
Errors reported by valgrind, coverity, and our conformance test suite
are all worth fixing... but fixing them *all* is like shovelling out
the dung from an infinitely large barn. Various people have tried
fixing one kind of error or the other, but maybe a combined attack,
where we went module by module and fixed *all* of the valgrind,
coverity, and conformance test errors might be more fruitful
(or at least more satisfying). Such an attempt should probably
start at the bottom, cleaning up modules in the order
wineserver, ntdll, kernel32, gdi32, user32, ...
To that end, here are the combined known errors for the first few modules.
cv219 FORWARD_NULL UNINSPECTED set_console_input_info
cv220 FORWARD_NULL UNINSPECTED
cv48 FORWARD_NULL UNINSPECTED RtlAllocateHandle
cv55 FORWARD_NULL UNINSPECTED RtlCreateEnvironment
cv227 NEGATIVE_RETURNS UNINSPECTED read_changes_apc
cv248 NULL_RETURNS UNINSPECTED HEAP_FindFreeBlock
cv343 REVERSE_INULL UNINSPECTED NtOpenSection
cv538 NULL_RETURNS UNINSPECTED HEApNtEnumerateSubKey
cv644 REVERSE_INULL UNINSPECTED NtQueryInformationProcess
cv658 FORWARD_NULL RNS UNINSPECTED RtlQueryRegistryValues
There, that doesn't look too awful, does it? Only a few dozen little
problems to solve
and we'll have server and ntdll spic and span... and then on to the next module.
If we start with a small circle of pure modules, and vigorously defend
in that circle against regressions in any of valgrind, coverity, and
we might make a noticable improvement in Wine's quality.
More information about the wine-devel