From: Arkadiusz Pietraszek Date: Thu, 16 Apr 2020 09:36:47 +0000 (+0200) Subject: [Bluetooth] Implementation of MAC address validator fix X-Git-Tag: submit/tizen/20200508.122743~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4d7dc0bfc8a310eedceeea332c620dbd0872e05f;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Bluetooth] Implementation of MAC address validator fix Functions IsValidAddress() and IsValidUUID have been fixed. [Verification] Code compiles without errors. Functions tested manually in developer console. Change-Id: I3e975f6ea08061528ef5b6cfe14e8a6f814e693c Signed-off-by: Arkadiusz Pietraszek --- diff --git a/src/bluetooth/bluetooth_adapter.cc b/src/bluetooth/bluetooth_adapter.cc index 4e7456d3..0487d264 100644 --- a/src/bluetooth/bluetooth_adapter.cc +++ b/src/bluetooth/bluetooth_adapter.cc @@ -18,8 +18,7 @@ #include #include - -#include +#include #ifdef APP_CONTROL_SETTINGS_SUPPORT #include @@ -78,36 +77,24 @@ const unsigned short kTimeout = 180; static bool IsValidAddress(const std::string& address) { ScopeLogger(); - static pcrecpp::RE re("(([0-9a-zA-Z]+):)+([0-9a-zA-Z]+)"); - static std::string compare_address = "00:12:47:08:9A:A6"; + const std::regex macAdressRegex {"([[:xdigit:]]{2}[:]){5}([[:xdigit:]]{2})"}; - if (!re.FullMatch(address)) { - LoggerE("Invalid address"); - return false; - } - if (address.size() != compare_address.size()) { - LoggerE("Invalid size"); - return false; + if (std::regex_match(address, macAdressRegex)) { + return true; } - return true; + LoggerE("Invalid MAC address: %s", address.c_str()); + return false; } static bool IsValidUUID(const std::string& uuid) { ScopeLogger(); - static pcrecpp::RE re("(([0-9a-zA-Z]+)-)+([0-9a-zA-Z]+)"); - static std::string compare_uuid = "00001101-0000-1000-8000-00805F9B34FB"; + const std::regex uuidRegex {"[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}"}; - if (!re.FullMatch(uuid)) { - LoggerE("Invalid UUID: %s", uuid.c_str()); - return false; + if (std::regex_match(uuid, uuidRegex)) { + return true; } - - if (uuid.size() != compare_uuid.size()) { - LoggerE("Invalid size: %s", uuid.c_str()); - return false; - } - - return true; + LoggerE("Invalid UUID: %s", uuid.c_str()); + return false; } void BluetoothAdapter::StateChangedCB(int result, bt_adapter_state_e state, void* user_data) {