fixed crash in multiple commands if createTempUser returns NULL
[NeonServV5.git] / src / IRCParser.c
index c1dbf6bca825450332036be9c19114fdc10dbe7a..6e6c61318a7a2104920bc1b331a4c35f766559b9 100644 (file)
@@ -396,6 +396,7 @@ static IRC_CMD(raw_kick) {
     if(isUserOnChan(target, chan) && (chan->flags & CHANFLAG_RECEIVED_USERLIST)) {
         if(user == NULL) {
             user = createTempUser(from);
+                       if(!user) return 0;
             user->flags |= USERFLAG_ISTMPUSER;
         }
         struct ChanUser *chanuser = getChanUser(target, chan);
@@ -425,6 +426,7 @@ static IRC_CMD(raw_topic) {
     if(chan->chanbot != client->user) return 1; //just ignore it to prevent event duplicates
     if(user == NULL) {
         user = createTempUser(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     event_topic(user, chan, argv[1]);
@@ -437,6 +439,7 @@ static IRC_CMD(raw_privmsg) {
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
         user = createTempUser(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     if(!stricmp(user->nick, "*status") && !match("Disconnected from IRC.*", argv[1])) {
@@ -494,6 +497,7 @@ static IRC_CMD(raw_notice) {
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
         user = createTempUser(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     if(argv[0][0] == '#') { //Channel notice
@@ -548,6 +552,7 @@ static IRC_CMD(raw_invite) {
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
         user = createTempUser(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     event_invite(client, user, argv[1]);
@@ -559,6 +564,7 @@ static IRC_CMD(raw_mode) {
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
         user = createTempUser(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     if(argv[0][0] == '#') {