aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/reguser/libkvireguser.cpp
diff options
context:
space:
mode:
authorGravatar IceN9ne2017-02-21 13:13:36 -0500
committerGravatar IceN9ne2017-02-21 13:13:36 -0500
commitd4d29a8f41cc74650c87e536d08d5365116b0167 (patch)
tree8dea8f172d9e2286bea8159449fed2c4476b3e20 /src/modules/reguser/libkvireguser.cpp
parentrename IRC-Hispano default network (diff)
downloadKVIrc-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.cpp24
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());