diff options
| author | 2017-02-21 13:13:36 -0500 | |
|---|---|---|
| committer | 2017-02-21 13:13:36 -0500 | |
| commit | d4d29a8f41cc74650c87e536d08d5365116b0167 (patch) | |
| tree | 8dea8f172d9e2286bea8159449fed2c4476b3e20 /src/modules/reguser/libkvireguser.cpp | |
| parent | rename IRC-Hispano default network (diff) | |
| download | KVIrc-d4d29a8f41cc74650c87e536d08d5365116b0167.tar.gz KVIrc-d4d29a8f41cc74650c87e536d08d5365116b0167.tar.bz2 KVIrc-d4d29a8f41cc74650c87e536d08d5365116b0167.zip | |
reguser module: Fix crash in reguser.add when user exists and group is set
* Fixes #2205
Diffstat (limited to 'src/modules/reguser/libkvireguser.cpp')
| -rw-r--r-- | src/modules/reguser/libkvireguser.cpp | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/modules/reguser/libkvireguser.cpp b/src/modules/reguser/libkvireguser.cpp index 9083fac71..3d51faab9 100644 --- a/src/modules/reguser/libkvireguser.cpp +++ b/src/modules/reguser/libkvireguser.cpp @@ -40,8 +40,6 @@ #include "KviPointerList.h" #include "KviIrcMask.h" -#include <QSplitter> // FIXME: REmove this! - //#warning "$reguser.matches..." //#warning "$reguser.clear" @@ -155,7 +153,7 @@ static bool reguser_kvs_cmd_edit(KviKvsModuleCommandCall * c) @short: Registers a user @syntax: - reguser.add [-r] [-f] [-q] [-g=group] <name> [mask] + reguser.add [-r] [-f] [-q] [-g=group] <name> <mask> @description: Adds a new entry with the specified <name> to the database.[br] If the database contains an entry with the same <name>, this command just prints @@ -183,8 +181,7 @@ static bool reguser_kvs_cmd_edit(KviKvsModuleCommandCall * c) static bool reguser_kvs_cmd_add(KviKvsModuleCommandCall * c) { - QString szName; - QString szMask; + QString szName, szMask; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("name", KVS_PT_STRING, 0, szName) KVSM_PARAMETER("mask", KVS_PT_STRING, 0, szMask) @@ -200,13 +197,8 @@ static bool reguser_kvs_cmd_add(KviKvsModuleCommandCall * c) g_pRegisteredUserDataBase->removeUser(szName); KviRegisteredUser * u = g_pRegisteredUserDataBase->addUser(szName); - QString group; - if(c->hasSwitch('g', "group")) - { - c->switches()->getAsStringIfExisting('g', "group", group); - u->setGroup(group); - } - if(u == nullptr) + + if(!u) { if(c->hasSwitch('f', "force")) { @@ -221,11 +213,17 @@ static bool reguser_kvs_cmd_add(KviKvsModuleCommandCall * c) if(u) { + if(c->hasSwitch('g', "group")) + { + QString group; + c->switches()->getAsStringIfExisting('g', "group", group); + u->setGroup(group); + } if(!szMask.isEmpty()) { KviIrcMask * m = new KviIrcMask(szMask); u = g_pRegisteredUserDataBase->addMask(u, m); - if(u != nullptr) + if(!u) { if(!c->hasSwitch('q', "quiet")) c->warning(__tr2qs_ctx("Mask %Q is already used to identify user %s", "register"), &szMask, u->name().toUtf8().data()); |
