Browse Source

ckdb - report (rare) invalid usernames

master
kanoi 10 years ago
parent
commit
d0e2e2c688
  1. 2
      src/ckdb.h
  2. 46
      src/ckdb_dbio.c

2
src/ckdb.h

@ -52,7 +52,7 @@
#define DB_VLOCK "1" #define DB_VLOCK "1"
#define DB_VERSION "0.9.6" #define DB_VERSION "0.9.6"
#define CKDB_VERSION DB_VERSION"-0.750" #define CKDB_VERSION DB_VERSION"-0.751"
#define WHERE_FFL " - from %s %s() line %d" #define WHERE_FFL " - from %s %s() line %d"
#define WHERE_FFL_HERE __FILE__, __func__, __LINE__ #define WHERE_FFL_HERE __FILE__, __func__, __LINE__

46
src/ckdb_dbio.c

@ -827,8 +827,14 @@ K_ITEM *useratts_add(PGconn *conn, char *username, char *attname,
K_RLOCK(users_free); K_RLOCK(users_free);
u_item = find_users(username); u_item = find_users(username);
K_RUNLOCK(users_free); K_RUNLOCK(users_free);
if (!u_item) if (!u_item) {
char *txt;
LOGERR("%s(): unknown user '%s'",
__func__,
txt = safe_text(username));
free(txt);
goto unitem; goto unitem;
}
DATA_USERS(users, u_item); DATA_USERS(users, u_item);
row->userid = users->userid; row->userid = users->userid;
@ -2504,10 +2510,12 @@ bool shares_add(PGconn *conn, char *workinfoid, char *username, char *workername
u_item = find_users(username); u_item = find_users(username);
K_RUNLOCK(users_free); K_RUNLOCK(users_free);
if (!u_item) { if (!u_item) {
char *txt;
tv_to_buf(cd, cd_buf, sizeof(cd_buf)); tv_to_buf(cd, cd_buf, sizeof(cd_buf));
LOGERR("%s() %s/%ld,%ld %.19s no user! Share discarded!", LOGERR("%s() %s/%ld,%ld %.19s no user! Share discarded!",
__func__, username, __func__, txt = safe_text(username),
cd->tv_sec, cd->tv_usec, cd_buf); cd->tv_sec, cd->tv_usec, cd_buf);
free(txt);
goto unitem; goto unitem;
} }
DATA_USERS(users, u_item); DATA_USERS(users, u_item);
@ -2627,10 +2635,12 @@ bool shareerrors_add(PGconn *conn, char *workinfoid, char *username,
u_item = find_users(username); u_item = find_users(username);
K_RUNLOCK(users_free); K_RUNLOCK(users_free);
if (!u_item) { if (!u_item) {
char *txt;
tv_to_buf(cd, cd_buf, sizeof(cd_buf)); tv_to_buf(cd, cd_buf, sizeof(cd_buf));
LOGERR("%s() %s/%ld,%ld %.19s no user! Shareerror discarded!", LOGERR("%s() %s/%ld,%ld %.19s no user! Shareerror discarded!",
__func__, username, __func__, txt = safe_text(username),
cd->tv_sec, cd->tv_usec, cd_buf); cd->tv_sec, cd->tv_usec, cd_buf);
free(txt);
goto unitem; goto unitem;
} }
DATA_USERS(users, u_item); DATA_USERS(users, u_item);
@ -3963,8 +3973,14 @@ bool miningpayouts_add(PGconn *conn, char *username, char *height,
K_RLOCK(users_free); K_RLOCK(users_free);
u_item = find_users(username); u_item = find_users(username);
K_RUNLOCK(users_free); K_RUNLOCK(users_free);
if (!u_item) if (!u_item) {
char *txt;
LOGERR("%s(): unknown user '%s'",
__func__,
txt = safe_text(username));
free(txt);
goto unitem; goto unitem;
}
DATA_USERS(users, u_item); DATA_USERS(users, u_item);
row->userid = users->userid; row->userid = users->userid;
@ -4152,6 +4168,12 @@ bool auths_add(PGconn *conn, char *poolinstance, char *username,
} }
u_item = users_add(conn, username, EMPTY, EMPTY, u_item = users_add(conn, username, EMPTY, EMPTY,
by, code, inet, cd, trf_root); by, code, inet, cd, trf_root);
} else {
char *txt;
LOGERR("%s(): unknown user '%s'",
__func__,
txt = safe_text(username));
free(txt);
} }
if (!u_item) if (!u_item)
goto unitem; goto unitem;
@ -4670,8 +4692,14 @@ bool userstats_add(char *poolinstance, char *elapsed, char *username,
K_RLOCK(users_free); K_RLOCK(users_free);
u_item = find_users(username); u_item = find_users(username);
K_RUNLOCK(users_free); K_RUNLOCK(users_free);
if (!u_item) if (!u_item) {
char *txt;
LOGERR("%s(): unknown user '%s'",
__func__,
txt = safe_text(username));
free(txt);
return false; return false;
}
DATA_USERS(users, u_item); DATA_USERS(users, u_item);
row->userid = users->userid; row->userid = users->userid;
TXT_TO_STR("workername", workername, row->workername); TXT_TO_STR("workername", workername, row->workername);
@ -4814,8 +4842,14 @@ bool workerstats_add(char *poolinstance, char *elapsed, char *username,
K_RLOCK(users_free); K_RLOCK(users_free);
u_item = find_users(username); u_item = find_users(username);
K_RUNLOCK(users_free); K_RUNLOCK(users_free);
if (!u_item) if (!u_item) {
char *txt;
LOGERR("%s(): unknown user '%s'",
__func__,
txt = safe_text(username));
free(txt);
return false; return false;
}
DATA_USERS(users, u_item); DATA_USERS(users, u_item);
row->userid = users->userid; row->userid = users->userid;
TXT_TO_STR("workername", workername, row->workername); TXT_TO_STR("workername", workername, row->workername);

Loading…
Cancel
Save