(thanks to the people reading git and excessively exploiting this bug... It was undet...
[NeonServV5.git] / src / DBHelper.c
index d5d8d0bd133c834559e50f9e50d753d6feb03864..6e2f84385c99a44abcd9b7f5c32b754ea66832ee 100644 (file)
@@ -27,6 +27,7 @@
 #include "ClientSocket.h"
 #include "bots.h"
 #include "ConfigParser.h"
+#include "log.h"
 
 void _loadUserSettings(struct UserNode *user) {
     SYNCHRONIZE(cache_sync);
@@ -226,8 +227,8 @@ int renameAccount(char *oldauth, char *newauth) {
                 printf_mysql_query("SELECT `chanuser_id`, `chanuser_access`, `chanuser_flags` FROM `chanusers` WHERE `chanuser_uid` = '%d'", userid);
                 res2 = mysql_use();
                 if((row2 = mysql_fetch_row(res2)) != NULL) {
-                    if(atoi(row[0]) > atoi(row2[0])) {
-                        printf_mysql_query("UPDATE `chanusers` SET `chanuser_access` = '%s' WHERE `chanuser_id` = '%s'", row[0], row2[0]);
+                    if(atoi(row[1]) > atoi(row2[1])) {
+                        printf_mysql_query("UPDATE `chanusers` SET `chanuser_access` = '%s' WHERE `chanuser_id` = '%s'", row[1], row2[0]);
                     }
                     printf_mysql_query("DELETE FROM `chanusers` WHERE `chanuser_id` = '%s'", row[0]);
                 } else
@@ -241,11 +242,10 @@ int renameAccount(char *oldauth, char *newauth) {
             printf_mysql_query("UPDATE `owner_history` SET `owner_history_from_uid` = '%d' WHERE `owner_history_from_uid` = '%d'", userid, newuid);
             printf_mysql_query("UPDATE `owner_history` SET `owner_history_from_uid` = '%d' WHERE `owner_history_from_uid` = '%d'", userid, newuid);
             printf_mysql_query("UPDATE `noinvite` SET `uid` = '%d' WHERE `uid` = '%d'", userid, newuid);
-            printf_mysql_query("DELETE FROM `users` WHERE `chanuser_id` = '%d'", newuid);
-        } else {
-            //simply rename the account
-            printf_mysql_query("UPDATE `users` SET `user_user` = '%s' WHERE `user_id` = '%d'", escape_string(newauth), userid);
+            printf_mysql_query("DELETE FROM `users` WHERE `user_id` = '%d'", newuid);
         }
+        //simply rename the account
+        printf_mysql_query("UPDATE `users` SET `user_user` = '%s' WHERE `user_id` = '%d'", escape_string(newauth), userid);
         char *alertchan = get_string_field("General.CheckAuths.alertchan");
         if(alertchan) {
             struct ChanNode *alertchan_chan = getChanByName(alertchan);
@@ -299,7 +299,7 @@ static void event_user_registered(struct UserNode *user, char *new_mask) {
     if ((row = mysql_fetch_row(res)) != NULL) {
         struct event_user_registered_cache *cache = malloc(sizeof(*cache));
         if (!cache) {
-            perror("malloc() failed");
+            printf_log("main", LOG_ERROR, "%s:%d malloc() failed", __FILE__, __LINE__);
             return;
         }
         cache->user = user;