https://issues.shibboleth.net/jira/browse/SSPCPP-543
[shibboleth/cpp-sp.git] / shibsp / attribute / resolver / impl / MetadataAttributeExtractor.cpp
index 9071521..61742ed 100644 (file)
@@ -288,7 +288,7 @@ template <class T> void MetadataExtractor::doLangSensitive(
     if (!match)
         match = objects.front();
 
-    auto_ptr_char temp(match->getTextContent());
+    auto_arrayptr<char> temp(toUTF8(match->getTextContent()));
     if (temp.get() && *temp.get()) {
         auto_ptr<SimpleAttribute> attr(new SimpleAttribute(vector<string>(1, id)));
         attr->getValues().push_back(temp.get());
@@ -310,11 +310,11 @@ void MetadataExtractor::doLogo(
     if (request && request->startLangMatching()) {
         do {
             for (vector<Logo*>::const_iterator i = logos.begin(); i != logos.end(); ++i) {
-                if (request->matchLang((*i)->getLang())) {
+                if (!(*i)->getLang() || request->matchLang((*i)->getLang())) {
                     sizediff = 0;
                     if (h > 0) {
                         dim = (*i)->getHeight();
-                        sizediff = abs(h - dim.second);
+                        sizediff += abs(h - dim.second);
                     }
                     if (w > 0) {
                         dim = (*i)->getWidth();
@@ -337,7 +337,7 @@ void MetadataExtractor::doLogo(
             sizediff = 0;
             if (h > 0) {
                 dim = (*i)->getHeight();
-                sizediff = abs(h - dim.second);
+                sizediff += abs(h - dim.second);
             }
             if (w > 0) {
                 dim = (*i)->getWidth();