Skip to content
  • Marc Mutz's avatar
    QtTest: fix UB in QSpontaneKeyEvent::setSpontaneous() · bc087db5
    Marc Mutz authored
    
    
    Found by UBSan:
    
      src/testlib/qtestspontaneevent.h:95:38: runtime error: member call on address 0x7ffc33019650 which does not point to an object of type 'QSpontaneKeyEvent' 0x7ffc33019650: note: object is of type 'QMouseEvent'
      83 2b 00 00  98 e8 fa 8e 83 2b 00 00  00 00 00 00 00 00 00 00  02 00 04 00 00 00 00 00  00 00 00 00
                   ^~~~~~~~~~~~~~~~~~~~~~~
                   vptr for 'QMouseEvent'
    
      src/testlib/qtestspontaneevent.h:95:38: runtime error: member call on address 0x7ffc330196e0 which does not point to an object of type 'QSpontaneKeyEvent' 0x7ffc330196e0: note: object is of type 'QKeyEvent'
      00 00 00 00  f8 e8 fa 8e 83 2b 00 00  00 00 00 00 00 00 00 00  07 00 04 00 00 00 00 00  00 00 00 00
                   ^~~~~~~~~~~~~~~~~~~~~~~
                   vptr for 'QKeyEvent'
    
    Fix by providing setSpontaneous() on QEvent as a private function and
    befriending QSpontaneKeyEvent. Make setSpontaneous() always-inline to
    avoid BiC between 5.6.0 and 5.6.1.
    
    Change-Id: Ic60d82ed6a858f4f13f41fa3d2d1db6e808896b7
    Reviewed-by: default avatarLars Knoll <lars.knoll@theqtcompany.com>
    bc087db5