Opened 19 years ago
Last modified 17 years ago
#2725 closed defect
dynamic_cast can return NULL, must test — at Initial Version
Reported by: | Nigel | Owned by: | Nigel |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | mythtv | Version: | 0.20 |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | yes |
Description
There are a few places in the code where the result of dynamic_cast isn't tested before it is used. Sadly, in some cases, it can return NULL, which causes a bus error or SEGV.
One particuar problem is in the keypress event processing. Causes a crash on OS X binaries built on 10.4 (gcc4), but running on 10.3. It is an old problem, usually caused by incorrectly compiling with -no-rtti: http://www.gossamer-threads.com/lists/mythtv/dev/72988#72988
Some documents (e.g. http://www.cplusplus.com/doc/tutorial/typecasting.html) say that dynamic_cast ing a base class to a subclass is illegal. QKeyEvent is a base class of QEvent, so if I believe this, it is the problem here.