Towards pure wine: a step by step approach
Dan Kegel
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.
wineserver:
coverity:
cv219 FORWARD_NULL UNINSPECTED set_console_input_info
base/src/wine/server/console.c
cv220 FORWARD_NULL UNINSPECTED
connect_process_winstation base/src/wine/server/winstation.c
ntdll:
coverity:
cv48 FORWARD_NULL UNINSPECTED RtlAllocateHandle
base/src/wine/dlls/ntdll/handletable.c
cv55 FORWARD_NULL UNINSPECTED RtlCreateEnvironment
base/src/wine/dlls/ntdll/env.c
cv227 NEGATIVE_RETURNS UNINSPECTED read_changes_apc
base/src/wine/dlls/ntdll/directory.c
cv248 NULL_RETURNS UNINSPECTED HEAP_FindFreeBlock
base/src/wine/dlls/ntdll/heap.c
cv343 REVERSE_INULL UNINSPECTED NtOpenSection
base/src/wine/dlls/ntdll/virtual.c
cv538 NULL_RETURNS UNINSPECTED HEApNtEnumerateSubKey
base/src/wine/dlls/ntdll/reg.c
cv644 REVERSE_INULL UNINSPECTED NtQueryInformationProcess
base/src/wine/dlls/ntdll/process.c
cv658 FORWARD_NULL RNS UNINSPECTED RtlQueryRegistryValues
base/src/wine/dlls/ntdll/reg.cdlls/ole32/ole2.c
valgrind:
http://kegel.com/wine/valgrind/logs-2008-04-10/vg-ntdll_env.txt
http://kegel.com/wine/valgrind/logs-2008-04-10/vg-ntdll_exception.txt
http://kegel.com/wine/valgrind/logs-2008-04-10/vg-ntdll_file.txt
conformance tests:
http://test.winehq.org/data/200804161000/#group_Wine:ntdll:change
http://test.winehq.org/data/200804161000/#group_XP:ntdll:exception
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
the modules
in that circle against regressions in any of valgrind, coverity, and
conformance tests,
we might make a noticable improvement in Wine's quality.
- Dan
More information about the wine-devel
mailing list