[Libreoffice-commits] .: cppuhelper/source

Stephan Bergmann sbergman at redhat.com
Sat Feb 2 09:10:26 PST 2013


 cppuhelper/source/typedescriptionprovider.cxx |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit 22a722320e5c7c94eacd8aab707c941755b08512
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Sat Feb 2 18:09:59 2013 +0100

    Missing reading of # members of polystruct
    
    Change-Id: I343a3e6d57e8f9e1a35cdf3b5825f5a6f58fd133

diff --git a/cppuhelper/source/typedescriptionprovider.cxx b/cppuhelper/source/typedescriptionprovider.cxx
index 7946846..35db672 100644
--- a/cppuhelper/source/typedescriptionprovider.cxx
+++ b/cppuhelper/source/typedescriptionprovider.cxx
@@ -2483,6 +2483,14 @@ css::uno::Any Provider::getByHierarchicalName(rtl::OUString const & aName)
                 for (sal_uInt32 i = 0; i != n; ++i) {
                     params.push_back(file_->readNameLen(off, &off));
                 }
+                n = file_->read32(off + 1);
+                if (n > SAL_MAX_INT32) {
+                    throw css::uno::DeploymentException(
+                        ("broken UNOIDL file: too many members of polymorphic"
+                         " struct type template " + aName),
+                        css::uno::Reference< css::uno::XInterface >());
+                }
+                off += 4;
                 std::vector< PolymorphicStructTypeTemplateDescription::Member >
                     mems;
                 for (sal_uInt32 i = 0; i != n; ++i) {


More information about the Libreoffice-commits mailing list