Hi Noel,

        I just saw this ubsan thing.

        Looks like there is a mix-up with:

    if 
(SfxItemState::SET==rAttr.GetItemState(SID_ATTR_TRANSFORM_POS_X,true,&pPoolItem))
 {
        nPosDX=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue() - 
aRect.Left();
        bChgPos=true;
    }
    if 
(SfxItemState::SET==rAttr.GetItemState(SID_ATTR_TRANSFORM_POS_Y,true,&pPoolItem)){
        nPosDY=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue() - 
aRect.Top();
        bChgPos=true;
    }

        and so on - and the signed-ness of their types:

        SfxUInt32Ite vs. SfxInt32Item

        And I wondered - is that something we could build a table for, and a
clang plugin that could catch whenever we do something like:

cui/source/tabpages/swpossizetabpage.cxx:                rSet->Put( 
SfxInt32Item( GetWhich( SID_ATTR_TRANSFORM_POS_X ), nHoriByPos ) );

or perhaps harder:

chart2/source/controller/main/ChartController_Position.cxx:                    
nWhich = pPool->GetWhich(SID_ATTR_TRANSFORM_POS_X);
chart2/source/controller/main/ChartController_Position.cxx-                    
aItemSet.Put(SfxInt32Item(nWhich, nValue));

        And warn in the code that the wrong type is going
into this pool of 'any's ? =) [ or perhaps we have something like
that already? ]

        Just a thought,

                Michael.

Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/svx/source/svdraw/svdedtv1.cxx:1588:16:
 runtime error: downcast of address 0x6030016eb260 which does not point to an 
object of type 'const SfxInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 0x6030016eb260: note: object 
is of type 'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:  c7 07 00 62  b0 71 99 c5 2b 
7f 00 00  01 00 00 00 68 27 00 be  94 09 00 00 be be be be  01 00 00 00
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               
^~~~~~~~~~~~~~~~~~~~~~~
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               vptr for 
'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: SUMMARY: 
UndefinedBehaviorSanitizer: undefined-behavior 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/svx/source/svdraw/svdedtv1.cxx:1588:16
 in
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/svx/source/svdraw/svdedtv1.cxx:1588:61:
 runtime error: member call on address 0x6030016eb260 which does not point to 
an object of type 'CntInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 0x6030016eb260: note: object 
is of type 'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:  c7 07 00 62  b0 71 99 c5 2b 
7f 00 00  01 00 00 00 68 27 00 be  94 09 00 00 be be be be  01 00 00 00
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               
^~~~~~~~~~~~~~~~~~~~~~~
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               vptr for 
'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: SUMMARY: 
UndefinedBehaviorSanitizer: undefined-behavior 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/svx/source/svdraw/svdedtv1.cxx:1588:61
 in
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/include/svl/cintitem.hxx:126:41:
 runtime error: member access within address 0x6030016eb260 which does not 
point to an object of type 'const CntInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 0x6030016eb260: note: object 
is of type 'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:  c7 07 00 62  b0 71 99 c5 2b 
7f 00 00  01 00 00 00 68 27 00 be  94 09 00 00 be be be be  01 00 00 00
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               
^~~~~~~~~~~~~~~~~~~~~~~
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               vptr for 
'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: SUMMARY: 
UndefinedBehaviorSanitizer: undefined-behavior 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/include/svl/cintitem.hxx:126:41
 in
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/svx/source/svdraw/svdedtv1.cxx:1592:16:
 runtime error: downcast of address 0x6030020a1300 which does not point to an 
object of type 'const SfxInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 0x6030020a1300: note: object 
is of type 'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:  c7 07 00 62  b0 71 99 c5 2b 
7f 00 00  01 00 00 00 69 27 00 be  ec 03 00 00 be be be be  01 00 00 00
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               
^~~~~~~~~~~~~~~~~~~~~~~
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               vptr for 
'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: SUMMARY: 
UndefinedBehaviorSanitizer: undefined-behavior 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/svx/source/svdraw/svdedtv1.cxx:1592:16
 in
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 
/home/collabora/online-buildscripts/staging/builddir/libreoffice/svx/source/svdraw/svdedtv1.cxx:1592:61:
 runtime error: member call on address 0x6030020a1300 which does not point to 
an object of type 'CntInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]: 0x6030020a1300: note: object 
is of type 'SfxUInt32Item'
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:  c7 07 00 62  b0 71 99 c5 2b 
7f 00 00  01 00 00 00 69 27 00 be  ec 03 00 00 be be be be  01 00 00 00
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               
^~~~~~~~~~~~~~~~~~~~~~~
Jan 18 06:42:13 ip-172-31-35-149 coolwsd[23775]:               vptr for 
'SfxUInt32Item'


--
michael.me...@collabora.com <><, GM Collabora Productivity
Hangout: mejme...@gmail.com, Skype: mmeeks
(M) +44 7795 666 147 - timezone usually UK / Europe

Reply via email to