On 18 October 2012 11:43, Kevin Wolf <kw...@redhat.com> wrote: > Am 17.10.2012 23:24, schrieb Tim Hardeck: >> On Wednesday 17 October 2012 17:00:15 Andreas Färber wrote: >>> Am 14.10.2012 15:08, schrieb Tim Hardeck: >>>> When calling QTAILQ_REMOVE or QLIST_REMOVE on an unitialized list >>>> QEMU segfaults. >>> >>> Can this be reproduced by a user today? Or is this just fixing the case >>> that a developer forgot to initialize a list? >> I am not sure but in this case it happened during an early VNC connection >> state failure which most likely wouldn't happen to regular users. >> I triggered it while working on the VNC connection part. >> >> The issue could most likely be also fixed in the VNC connection >> initialization >> process but if this changes doesn't have a relevant performance impact they >> might prevent some other/future crashes. > > At the same time, it could be hiding real bugs, where ignoring the > QLIST_REMOVE() isn't the right fix. I can see your point, but I would be > careful with making interfaces less strict.
I agree this patch doesn't seem like the right fix. All lists should be initialised (either via the _INIT macro or statically using the _HEAD_INITIALIZER macros) before use. If we ever try to do one of the other operations on an uninitialised list that's a bug which needs to be tracked down and fixed. -- PMM