File fix-sudo-issue.patch of Package deepin-polkit-agent
diff -Nur dde-polkit-agent-5.4.14/AuthDialog.cpp dde-polkit-agent-5.4.14-new/AuthDialog.cpp
--- dde-polkit-agent-5.4.14/AuthDialog.cpp 2021-10-15 09:37:19.000000000 +0800
+++ dde-polkit-agent-5.4.14-new/AuthDialog.cpp 2022-02-09 20:20:42.482537932 +0800
@@ -193,12 +193,20 @@
} else {
// 判断用户密码是否在有效期内
QDBusInterface accounts("com.deepin.daemon.Accounts", "/com/deepin/daemon/Accounts", "com.deepin.daemon.Accounts", QDBusConnection::systemBus());
- const QString &path = accounts.call("FindUserById", QString::number(identity.toUnixUserIdentity().uid())).arguments().value(0).toString();
+ QString path;
+ QDBusReply<QString> reply = accounts.call("FindUserById", QString::number(identity.toUnixUserIdentity().uid()));
+ if (reply.isValid()) {
+ path = reply.value();
+ }
+
bool passwordIsExpired = false;
if (!path.isEmpty()) {
QDBusInterface accounts_user("com.deepin.daemon.Accounts", path, "com.deepin.daemon.Accounts.User", QDBusConnection::systemBus());
- passwordIsExpired = accounts_user.call("IsPasswordExpired").arguments().value(0).toBool();
+ QDBusReply<bool> reply = accounts_user.call("IsPasswordExpired");
+ if (reply.isValid()) {
+ passwordIsExpired = reply.value();
+ }
}
// 如果密码以过期