Gabriele Contini
2020-05-16 004073a7b79dc9c455416703d30f4922b4577172
src/library/locate/ExternalDefinition.cpp
@@ -9,19 +9,19 @@
#include <cstring>
#include <string>
#include <vector>
#include <stdexcept>
#include <licensecc/datatypes.h>
#include "../base/base64.h"
#include "../base/EventRegistry.h"
#include "../base/FileUtils.hpp"
#include "../base/StringUtils.h"
#include "../base/string_utils.h"
#include "ExternalDefinition.hpp"
#include "../base/file_utils.hpp"
namespace license {
namespace locate {
using namespace std;
   using namespace std;
ExternalDefinition::ExternalDefinition(const LicenseLocation *location)
   : LocatorStrategy("ExternalDefinition"), m_location(location) {}
@@ -34,7 +34,7 @@
      eventRegistry.addEvent(LICENSE_SPECIFIED, get_strategy_name());
      switch (m_location->license_data_type) {
         case LICENSE_PATH: {
            string licData(m_location->licenseData, mstrnlen_s(m_location->licenseData, API_LICENSE_DATA_LENGTH));
            string licData(m_location->licenseData, mstrnlen_s(m_location->licenseData, LCC_API_MAX_LICENSE_DATA_LENGTH));
            const vector<string> declared_positions = license::split_string(licData, ';');
            existing_pos =
               license::filter_existing_files(declared_positions, eventRegistry, get_strategy_name().c_str());
@@ -52,12 +52,11 @@
const std::string ExternalDefinition::retrieve_license_content(const std::string &licenseLocation) const {
   if (licenseLocation == get_strategy_name()) {
      string licData(m_location->licenseData, mstrnlen_s(m_location->licenseData, API_LICENSE_DATA_LENGTH));
      string licData(m_location->licenseData, mstrnlen_s(m_location->licenseData, LCC_API_MAX_LICENSE_DATA_LENGTH));
      if (m_location->license_data_type == LICENSE_ENCODED) {
         int flen = 0;
         unsigned char *raw = unbase64(licData.c_str(), licData.length(), &flen);
         string str = string(reinterpret_cast<char *>(raw));
         free(raw);
         // FIXME what if license is wrong
         vector<uint8_t> raw = unbase64(licData);
         string str = string(reinterpret_cast<char *>(raw.data()));
         return str;
      } else {
         return licData;