[Libreoffice-commits] core.git: sw/source

Stephan Bergmann sbergman at redhat.com
Thu Feb 15 06:54:21 UTC 2018


 sw/source/uibase/shells/grfsh.cxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 552f5835fdc775a77022a49bdc77f84eab697bcf
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Feb 14 16:04:30 2018 +0100

    SID_ATTR_TRANSFORM_ANGLE is an SfxInt32Item
    
    ...as reported by UBSan when rotating an image in Writer:
    
    > sw/source/uibase/shells/grfsh.cxx:531:52: runtime error: downcast of address 0x00000bba8d80 which does not point to an object of type 'const SfxUInt32Item'
    > 0x00000bba8d80: note: object is of type 'SfxInt32Item'
    >  00 00 00 00  f8 8f 04 42 8f 7f 00 00  01 00 00 00 6f 27 00 00  d4 17 00 00 00 00 00 00  41 00 00 00
    >               ^~~~~~~~~~~~~~~~~~~~~~~
    >               vptr for 'SfxInt32Item'
    >     #0 0x7f8eaf7fcdad in SwGrfShell::Execute(SfxRequest&) sw/source/uibase/shells/grfsh.cxx:531:52
    >     #1 0x7f8eaf7ed2f5 in SfxStubSwGrfShellExecute(SfxShell*, SfxRequest&) workdir/SdiTarget/sw/sdi/swslots.hxx:12460:1
    >     #2 0x7f8f3ff4637a in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) include/sfx2/shell.hxx:211:35
    ...
    
    Code had been introduced with a42b0985c7619efdc934bb1cf19e5e2c2b6faea2
    "RotGrfFlyFrame: Initial adaptions".
    
    Change-Id: Id402244d723bcf653e414a3cd45ce07ad216e29f
    Reviewed-on: https://gerrit.libreoffice.org/49738
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/sw/source/uibase/shells/grfsh.cxx b/sw/source/uibase/shells/grfsh.cxx
index 0fd6daf05927..0ed1ec139f27 100644
--- a/sw/source/uibase/shells/grfsh.cxx
+++ b/sw/source/uibase/shells/grfsh.cxx
@@ -528,7 +528,7 @@ void SwGrfShell::Execute(SfxRequest &rReq)
                 // RotGrfFlyFrame: Get and process evtl. changed RotationAngle
                 if ( SfxItemState::SET == pSet->GetItemState(SID_ATTR_TRANSFORM_ANGLE, false, &pItem ))
                 {
-                    const sal_uInt32 aNewRotation((static_cast<const SfxUInt32Item*>(pItem)->GetValue() / 10) % 3600);
+                    const sal_Int32 aNewRotation((static_cast<const SfxInt32Item*>(pItem)->GetValue() / 10) % 3600);
 
                     // RotGrfFlyFrame: Possible rotation change here, SwFlyFrameAttrMgr aMgr is available
                     aMgr.SetRotation(nCurrentRotation, aNewRotation, aUnrotatedSize);


More information about the Libreoffice-commits mailing list