lots of leaks fixed
This commit is contained in:
parent
d5d61a8cc6
commit
66da53eb85
2
deps/aha/aha.c
vendored
2
deps/aha/aha.c
vendored
@ -572,6 +572,6 @@ char * aha(char *input)
|
||||
//Footer
|
||||
if ((fc!=-1) || (bc!=-1) || (ul!=0) || (bo!=0) || (bl!=0))
|
||||
append_output(&output, "</span>\n", &size, &outat);
|
||||
|
||||
free(unmangle_out);
|
||||
return output;
|
||||
}
|
||||
|
@ -282,6 +282,7 @@ int bwave_scan_area(int confr, int area, int areano, int totmsgs, FILE *fti_file
|
||||
fwrite(&mix, sizeof(MIX_REC), 1, mix_file);
|
||||
//}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
free_message_headers(msghs);
|
||||
return totmsgs;
|
||||
}
|
||||
@ -712,6 +713,7 @@ int bwave_add_message(int confr, int area, unsigned int dwritten, char *to, char
|
||||
} else {
|
||||
dolog("Failed to lock msg base!");
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -721,12 +723,14 @@ int bwave_add_message(int confr, int area, unsigned int dwritten, char *to, char
|
||||
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return -1;
|
||||
} else {
|
||||
JAM_UnlockMB(jb);
|
||||
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -205,19 +205,21 @@ int l_messageFound(lua_State *L) {
|
||||
if (z != 0) {
|
||||
dolog("Failed to read msg header: %d Erro %d", z, JAM_Errno(jb));
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
lua_pushnumber(L, 0);
|
||||
return 1;
|
||||
}
|
||||
if (jmh.Attribute & JAM_MSG_DELETED) {
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
lua_pushnumber(L, 0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
|
||||
free(jb);
|
||||
lua_pushnumber(L, 1);
|
||||
return 1;
|
||||
}
|
||||
@ -247,9 +249,11 @@ int l_readMessageHdr(lua_State *L) {
|
||||
if (z != 0) {
|
||||
dolog("Failed to read msg header: %d Erro %d", z, JAM_Errno(jb));
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
} else if (jmh.Attribute & JAM_MSG_DELETED) {
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
} else {
|
||||
for (z=0;z<jsp->NumFields;z++) {
|
||||
if (jsp->Fields[z]->LoID == JAMSFLD_SUBJECT) {
|
||||
@ -271,6 +275,7 @@ int l_readMessageHdr(lua_State *L) {
|
||||
}
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
}
|
||||
if (subject == NULL) {
|
||||
subject = strdup("(No Subject)");
|
||||
@ -318,9 +323,11 @@ int l_readMessage(lua_State *L) {
|
||||
if (z != 0) {
|
||||
dolog("Failed to read msg header: %d Erro %d", z, JAM_Errno(jb));
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
body = strdup("No Message");
|
||||
} else if (jmh.Attribute & JAM_MSG_DELETED) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
body = strdup("No Message");
|
||||
} else {
|
||||
body = (char *)malloc(jmh.TxtLen + 1);
|
||||
@ -328,6 +335,7 @@ int l_readMessage(lua_State *L) {
|
||||
body[jmh.TxtLen] = '\0';
|
||||
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
}
|
||||
lua_pushstring(L, body);
|
||||
|
||||
@ -468,6 +476,7 @@ int l_postMessage(lua_State *L) {
|
||||
} else if (conf.mail_conferences[confr]->mail_areas[area]->type == TYPE_NETMAIL_AREA) {
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -480,6 +489,7 @@ int l_postMessage(lua_State *L) {
|
||||
} else {
|
||||
dolog("Failed to lock msg base!");
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -533,6 +543,7 @@ int l_postMessage(lua_State *L) {
|
||||
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
}
|
||||
free(msg);
|
||||
|
||||
|
@ -128,6 +128,7 @@ void free_message_headers(struct msg_headers *msghs) {
|
||||
if (msghs->msgs[i]->replyid != NULL) {
|
||||
free(msghs->msgs[i]->replyid);
|
||||
}
|
||||
free(msghs->msgs[i]);
|
||||
}
|
||||
if (msghs->msg_count > 0) {
|
||||
free(msghs->msgs);
|
||||
@ -354,9 +355,11 @@ struct msg_headers *read_message_headers(int msgconf, int msgarea, struct user_r
|
||||
|
||||
} else {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return NULL;
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return msghs;
|
||||
}
|
||||
|
||||
@ -1652,6 +1655,7 @@ int read_message(struct user_record *user, struct msg_headers *msghs, int mailno
|
||||
|
||||
if (tolower(c) == 'r') {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
if (user->sec_level < conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->write_sec_level) {
|
||||
s_printf(get_string(113));
|
||||
} else {
|
||||
@ -1974,6 +1978,7 @@ int read_new_msgs(struct user_record *user, struct msg_headers *msghs) {
|
||||
all_unread = 1;
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
if (all_unread == 0) {
|
||||
k = jlr.HighReadMsg;
|
||||
for (i=0;i<msghs->msg_count;i++) {
|
||||
@ -2023,6 +2028,7 @@ void read_mail(struct user_record *user) {
|
||||
all_unread = 1;
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
s_printf(get_string(120), msghs->msg_count);
|
||||
|
||||
s_readstring(buffer, 6);
|
||||
@ -2287,6 +2293,7 @@ void post_message(struct user_record *user) {
|
||||
}
|
||||
if (z != 0) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2311,6 +2318,7 @@ void post_message(struct user_record *user) {
|
||||
JAM_DelSubPacket(jsp);
|
||||
free(msg);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
}
|
||||
free(to);
|
||||
free(subject);
|
||||
@ -2349,6 +2357,7 @@ void list_messages(struct user_record *user) {
|
||||
all_unread = 1;
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
s_printf(get_string(125), msghs->msg_count);
|
||||
|
||||
s_readstring(buffer, 6);
|
||||
@ -2577,6 +2586,7 @@ void list_messages(struct user_record *user) {
|
||||
all_unread = 1;
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2993,12 +3003,14 @@ void do_mail_scan(struct user_record *user, int oldscan) {
|
||||
|
||||
if (JAM_ReadMBHeader(jb, &jbh) != 0) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (JAM_ReadLastRead(jb, user->id, &jlr) == JAM_NO_USER) {
|
||||
if (jbh.ActiveMsgs == 0) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
continue;
|
||||
}
|
||||
if (conf.mail_conferences[i]->mail_areas[j]->type == TYPE_NETMAIL_AREA) {
|
||||
@ -3117,10 +3129,12 @@ void do_mail_scan(struct user_record *user, int oldscan) {
|
||||
}
|
||||
} else {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
if (res) {
|
||||
break;
|
||||
}
|
||||
@ -3257,6 +3271,7 @@ void msgbase_reset_pointers(int conference, int msgarea, int readm, int msgno) {
|
||||
|
||||
if (JAM_ReadMBHeader(jb, &jbh) != 0) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -3301,6 +3316,7 @@ void msgbase_reset_pointers(int conference, int msgarea, int readm, int msgno) {
|
||||
JAM_WriteLastRead(jb, gUser->id, &jlr);
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
}
|
||||
|
||||
void msgbase_reset_all_pointers(int readm) {
|
||||
@ -3326,11 +3342,13 @@ int new_messages(struct user_record *user, int conference, int area) {
|
||||
}
|
||||
if (JAM_ReadMBHeader(jb, &jbh) != 0) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
if (JAM_ReadLastRead(jb, user->id, &jlr) == JAM_NO_USER) {
|
||||
if (jbh.ActiveMsgs == 0) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
if (conf.mail_conferences[conference]->mail_areas[area]->type == TYPE_NETMAIL_AREA) {
|
||||
@ -3362,5 +3380,6 @@ int new_messages(struct user_record *user, int conference, int area) {
|
||||
}
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return count;
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ static int secLevel(void* user, const char* section, const char* name,
|
||||
}
|
||||
|
||||
int save_user(struct user_record *user) {
|
||||
char buffer[256];
|
||||
char buffer[PATH_MAX];
|
||||
sqlite3 *db;
|
||||
sqlite3_stmt *res;
|
||||
int rc;
|
||||
@ -84,7 +84,7 @@ int save_user(struct user_record *user) {
|
||||
char *update_sql = "UPDATE users SET password=?, salt=?, firstname=?,"
|
||||
"lastname=?, email=?, location=?, sec_level=?, last_on=?, time_left=?, cur_mail_conf=?, cur_mail_area=?, cur_file_dir=?, cur_file_sub=?, times_on=?, bwavepktno=?, archiver=?, protocol=?,nodemsgs=?,codepage=?,exteditor=?,bwavestyle=?,signature=?,autosig=? where loginname LIKE ?";
|
||||
|
||||
sprintf(buffer, "%s/users.sq3", conf.bbs_path);
|
||||
snprintf(buffer, PATH_MAX, "%s/users.sq3", conf.bbs_path);
|
||||
|
||||
rc = sqlite3_open(buffer, &db);
|
||||
|
||||
@ -128,13 +128,13 @@ int save_user(struct user_record *user) {
|
||||
|
||||
|
||||
rc = sqlite3_step(res);
|
||||
|
||||
if (rc != SQLITE_DONE) {
|
||||
|
||||
sqlite3_finalize(res);
|
||||
dolog("execution failed: %s", sqlite3_errmsg(db));
|
||||
sqlite3_close(db);
|
||||
exit(1);
|
||||
}
|
||||
sqlite3_finalize(res);
|
||||
sqlite3_close(db);
|
||||
return 1;
|
||||
|
||||
|
@ -174,6 +174,7 @@ char *www_msgs_messagelist(struct user_record *user, int conference, int area, i
|
||||
jb = open_jam_base(conf.mail_conferences[conference]->mail_areas[area]->path);
|
||||
if (!jb) {
|
||||
free(page);
|
||||
free_message_headers(mhrs);
|
||||
return NULL;
|
||||
}
|
||||
if (JAM_ReadLastRead(jb, user->id, &jlr) == JAM_NO_USER) {
|
||||
@ -181,7 +182,7 @@ char *www_msgs_messagelist(struct user_record *user, int conference, int area, i
|
||||
jlr.HighReadMsg = 0;
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
|
||||
free(jb);
|
||||
skip_f = mhrs->msg_count - skip;
|
||||
skip_t = mhrs->msg_count - skip - 50;
|
||||
if (skip_t < 0) {
|
||||
@ -303,11 +304,13 @@ char *www_msgs_messageview(struct user_record *user, int conference, int area, i
|
||||
z = JAM_ReadMsgHeader(jb, msg - 1, &jmh, &jsp);
|
||||
if (z != 0) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return NULL;
|
||||
}
|
||||
if (jmh.Attribute & JAM_MSG_DELETED) {
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -390,6 +393,7 @@ char *www_msgs_messageview(struct user_record *user, int conference, int area, i
|
||||
free(replyid);
|
||||
}
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -411,6 +415,7 @@ char *www_msgs_messageview(struct user_record *user, int conference, int area, i
|
||||
|
||||
JAM_WriteLastRead(jb, user->id, &jlr);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
|
||||
page = (char *)malloc(4096);
|
||||
max_len = 4096;
|
||||
@ -868,11 +873,13 @@ int www_send_msg(struct user_record *user, char *to, char *subj, int conference,
|
||||
sleep(1);
|
||||
} else {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (z != 0) {
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -903,6 +910,7 @@ int www_send_msg(struct user_record *user, char *to, char *subj, int conference,
|
||||
JAM_UnlockMB(jb);
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
body3 = (char *)malloc(strlen(body2) + 2 + strlen(buffer));
|
||||
@ -911,6 +919,7 @@ int www_send_msg(struct user_record *user, char *to, char *subj, int conference,
|
||||
JAM_UnlockMB(jb);
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -924,6 +933,7 @@ int www_send_msg(struct user_record *user, char *to, char *subj, int conference,
|
||||
JAM_UnlockMB(jb);
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
} else {
|
||||
if (conf.mail_conferences[conference]->mail_areas[area]->type == TYPE_ECHOMAIL_AREA) {
|
||||
@ -941,7 +951,7 @@ int www_send_msg(struct user_record *user, char *to, char *subj, int conference,
|
||||
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
|
||||
free(jb);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user