Merge pull request #15294 from sethalves/fix-refreshGroupsCache-asan-error

case 21977: fix asan reported error when returning QString reference to refreshGroupsCache
This commit is contained in:
Shannon Romano 2019-04-17 11:43:12 -07:00 committed by GitHub
commit 5d1c1010c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View file

@ -1010,7 +1010,7 @@ void DomainGatekeeper::refreshGroupsCache() {
nodeList->eachNode([this](const SharedNodePointer& node) { nodeList->eachNode([this](const SharedNodePointer& node) {
if (!node->getPermissions().isAssignment) { if (!node->getPermissions().isAssignment) {
// this node is an agent // this node is an agent
const QString& verifiedUserName = node->getPermissions().getVerifiedUserName(); QString verifiedUserName = node->getPermissions().getVerifiedUserName();
if (!verifiedUserName.isEmpty()) { if (!verifiedUserName.isEmpty()) {
getGroupMemberships(verifiedUserName); getGroupMemberships(verifiedUserName);
} }

View file

@ -41,10 +41,10 @@ public:
NodePermissions(const NodePermissionsKey& key) { _id = key.first.toLower(); _rankID = key.second; } NodePermissions(const NodePermissionsKey& key) { _id = key.first.toLower(); _rankID = key.second; }
NodePermissions(QMap<QString, QVariant> perms); NodePermissions(QMap<QString, QVariant> perms);
const QString& getID() const { return _id; } // a user-name or a group-name, not verified QString getID() const { return _id; } // a user-name or a group-name, not verified
void setID(const QString& id) { _id = id; } void setID(const QString& id) { _id = id; }
void setRankID(QUuid& rankID) { _rankID = rankID; } void setRankID(QUuid& rankID) { _rankID = rankID; }
const QUuid& getRankID() const { return _rankID; } QUuid getRankID() const { return _rankID; }
NodePermissionsKey getKey() const { return NodePermissionsKey(_id, _rankID); } NodePermissionsKey getKey() const { return NodePermissionsKey(_id, _rankID); }
// the _id member isn't authenticated/verified and _username is. // the _id member isn't authenticated/verified and _username is.
@ -52,7 +52,7 @@ public:
const QString& getVerifiedUserName() const { return _verifiedUserName; } const QString& getVerifiedUserName() const { return _verifiedUserName; }
void setGroupID(QUuid groupID) { _groupID = groupID; if (!groupID.isNull()) { _groupIDSet = true; }} void setGroupID(QUuid groupID) { _groupID = groupID; if (!groupID.isNull()) { _groupIDSet = true; }}
const QUuid& getGroupID() const { return _groupID; } QUuid getGroupID() const { return _groupID; }
bool isGroup() const { return _groupIDSet; } bool isGroup() const { return _groupIDSet; }
bool isAssignment { false }; bool isAssignment { false };