]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/store/postgresql/postgresql_store_users.cpp
Fix resource leak in file_store
[stg.git] / projects / stargazer / plugins / store / postgresql / postgresql_store_users.cpp
index 0e26327b58fbeb5741ca103bdd62d50daecdccb3..11c757f263b13043bda75dc54280fda34b3618b8 100644 (file)
 
 #include <libpq-fe.h>
 
-#include "stg_const.h"
-#include "postgresql_store.h"
-#include "stg_locker.h"
+#include "stg/const.h"
+#include "stg/locker.h"
 #include "../../../stg_timer.h"
+#include "postgresql_store.h"
 
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::GetUsersList(vector<string> * usersList) const
@@ -906,7 +906,11 @@ for (int i = 0; i < tuples; ++i)
         }
     else
         {
-        conf->userdata[i] = PQgetvalue(result, i, 1);
+        if (num < USERDATA_NUM &&
+            num >= 0)
+            {
+            conf->userdata[num] = PQgetvalue(result, i, 1);
+            }
         }
     }
 
@@ -1330,7 +1334,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::WriteDetailedStat(const map<IP_DIR_PAIR, STAT_NODE> * statTree,
+int POSTGRESQL_STORE::WriteDetailedStat(const map<IP_DIR_PAIR, STAT_NODE> & statTree,
                                       time_t lastStat,
                                       const string & login) const
 {
@@ -1370,7 +1374,7 @@ if (EscapeString(elogin))
 map<IP_DIR_PAIR, STAT_NODE>::const_iterator it;
 time_t currTime = time(NULL);
 
-for (it = statTree->begin(); it != statTree->end(); ++it)
+for (it = statTree.begin(); it != statTree.end(); ++it)
     {
     std::stringstream query;
     query << "INSERT INTO tb_detail_stats "