Fix: wrong data preparation for policy requests 42/85942/2
authorKazimierz Krosman <k.krosman@samsung.com>
Fri, 26 Aug 2016 13:39:47 +0000 (15:39 +0200)
committerKazimierz Krosman <k.krosman@samsung.com>
Wed, 31 Aug 2016 07:30:58 +0000 (09:30 +0200)
Additional Fix: wrong assertion (name validation)

Change-Id: I79fa2bc27f8a8406f067bc7e4299bdc422c79b37

src/internal/internal.cpp
src/internal/policy.cpp

index ff19d1b..2849ea0 100644 (file)
@@ -97,8 +97,8 @@ int __internal_can_send_multi_dest(bool bus_type,
        int i = 0;
        ldp_xml_parser::MatchItemSR matcher(interface, member, path, static_cast<ldp_xml_parser::MessageType>(type), ldp_xml_parser::MessageDirection::SEND);
        if (destination)
-               while (destination[i++]) {
-                       matcher.addName(destination[i]);
+               while (destination[i]) {
+                       matcher.addName(destination[i++]);
                }
        return static_cast<int>(policy_checker.check(bus_type, user, group, label, matcher, ldp_xml_parser::ItemType::SEND));
 }
index 9bcdb63..96ddde1 100644 (file)
@@ -1,5 +1,6 @@
 #include "policy.hpp"
 #include "naive_policy_db.hpp"
+#include "tslog.hpp"
 #include <cstdlib>
 #include <sys/types.h>
 #include <grp.h>
@@ -268,11 +269,13 @@ bool MatchItemSR::addNames(const char* name) {
        int j = 0;
 
        if (name) {
-               assert((name[i] > 'a'&& name[i] < 'z') || (name[i] > 'A'&& name[i] < 'Z') || (name[i] > '0'&& name[i] < '9'));
                while (name[i] && names_num < KDBUS_CONN_MAX_NAMES + 1) {
                        char c;
                        int len;
                        j = i;
+                       if (tslog::verbose() && !(name[i] >= 'a'&& name[i] <= 'z') || (name[i] >= 'A'&& name[i] <= 'Z') || (name[i] >= '0'&& name[i] <= '9') || name[i] == ' ') {
+                               std::cout<<"Wrong name("<<i<<"): "<<name<<std::endl;
+                       }
                        while ((c = name[i++]) && ' ' != c);
                        if (!c) {
                                --i;