diff --git a/types/id.cc b/types/id.cc index 37280828..9ef0bd90 100644 --- a/types/id.cc +++ b/types/id.cc @@ -184,7 +184,7 @@ parse(const char * value, size_t len, Type type) } if ((type == UNKNOWN || type == GOOG128) - && len == 26 && value[0] == 'C' && value[1] == 'A' + && len >= 26 && value[0] == 'C' && value[1] == 'A' && value[2] == 'E' && value[3] == 'S' && value[4] == 'E') { // Google ID: --> CAESEAYra3NIxLT9C8twKrzqaA @@ -206,8 +206,8 @@ parse(const char * value, size_t len, Type type) else return -1; }; - bool error = false; - for (unsigned i = 5; i < 26 && !error; ++i) { + auto error = false; + for (auto i = 5; i < len && !error; ++i) { int v = b64Decode(value[i]); if (v == -1) error = true; res = (res << 6) | v;