Catch malloc returning NULL.
This commit is contained in:
parent
c3bb6639b6
commit
3ab2755767
22
src/bip.c
22
src/bip.c
@ -75,7 +75,7 @@ static void hash_binary(char *hex, unsigned char **password, unsigned int *seed)
|
|||||||
if (strlen(hex) != 40)
|
if (strlen(hex) != 40)
|
||||||
fatal("Incorrect password format %s\n", hex);
|
fatal("Incorrect password format %s\n", hex);
|
||||||
|
|
||||||
md5 = malloc(20);
|
md5 = bip_malloc(20);
|
||||||
for (i = 0; i < 20; i++) {
|
for (i = 0; i < 20; i++) {
|
||||||
sscanf(hex + 2 * i, "%02x", &buf);
|
sscanf(hex + 2 * i, "%02x", &buf);
|
||||||
md5[i] = buf;
|
md5[i] = buf;
|
||||||
@ -133,7 +133,7 @@ void conf_die(bip_t *bip, char *fmt, ...)
|
|||||||
va_list ap;
|
va_list ap;
|
||||||
int size = ERRBUFSZ;
|
int size = ERRBUFSZ;
|
||||||
int n;
|
int n;
|
||||||
char *error = malloc(size);
|
char *error = bip_malloc(size);
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
@ -1201,7 +1201,7 @@ int main(int argc, char **argv)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#ifdef HAVE_OIDENTD
|
#ifdef HAVE_OIDENTD
|
||||||
bip.oidentdpath = malloc(strlen(home) + 1 +
|
bip.oidentdpath = bip_malloc(strlen(home) + 1 +
|
||||||
strlen(OIDENTD_FILENAME) + 1);
|
strlen(OIDENTD_FILENAME) + 1);
|
||||||
strcpy(bip.oidentdpath, home);
|
strcpy(bip.oidentdpath, home);
|
||||||
strcat(bip.oidentdpath, "/");
|
strcat(bip.oidentdpath, "/");
|
||||||
@ -1210,13 +1210,13 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
|
|
||||||
if (!conf_biphome) {
|
if (!conf_biphome) {
|
||||||
conf_biphome = malloc(strlen(home) + strlen("/.bip") + 1);
|
conf_biphome = bip_malloc(strlen(home) + strlen("/.bip") + 1);
|
||||||
strcpy(conf_biphome, home);
|
strcpy(conf_biphome, home);
|
||||||
strcat(conf_biphome, "/.bip");
|
strcat(conf_biphome, "/.bip");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!confpath) {
|
if (!confpath) {
|
||||||
confpath = malloc(strlen(conf_biphome) + 1 +
|
confpath = bip_malloc(strlen(conf_biphome) + 1 +
|
||||||
strlen(S_CONF) + 1);
|
strlen(S_CONF) + 1);
|
||||||
*confpath = 0;
|
*confpath = 0;
|
||||||
strcat(confpath, conf_biphome);
|
strcat(confpath, conf_biphome);
|
||||||
@ -1234,14 +1234,16 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
if (!conf_log_root) {
|
if (!conf_log_root) {
|
||||||
char *ap = "/logs";
|
char *ap = "/logs";
|
||||||
conf_log_root = malloc(strlen(conf_biphome) + strlen(ap) + 1);
|
conf_log_root = bip_malloc(strlen(conf_biphome) +
|
||||||
|
strlen(ap) + 1);
|
||||||
strcpy(conf_log_root, conf_biphome);
|
strcpy(conf_log_root, conf_biphome);
|
||||||
strcat(conf_log_root, ap);
|
strcat(conf_log_root, ap);
|
||||||
mylog(LOG_INFO, "Default log root: %s", conf_log_root);
|
mylog(LOG_INFO, "Default log root: %s", conf_log_root);
|
||||||
}
|
}
|
||||||
if (!conf_pid_file) {
|
if (!conf_pid_file) {
|
||||||
char *pid = "/bip.pid";
|
char *pid = "/bip.pid";
|
||||||
conf_pid_file = malloc(strlen(conf_biphome) + strlen(pid) + 1);
|
conf_pid_file = bip_malloc(strlen(conf_biphome) +
|
||||||
|
strlen(pid) + 1);
|
||||||
strcpy(conf_pid_file, conf_biphome);
|
strcpy(conf_pid_file, conf_biphome);
|
||||||
strcat(conf_pid_file, pid);
|
strcat(conf_pid_file, pid);
|
||||||
mylog(LOG_INFO, "Default pid file: %s", conf_pid_file);
|
mylog(LOG_INFO, "Default pid file: %s", conf_pid_file);
|
||||||
@ -1254,7 +1256,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
if (!conf_ssl_certfile) {
|
if (!conf_ssl_certfile) {
|
||||||
char *ap = "/bip.pem";
|
char *ap = "/bip.pem";
|
||||||
conf_ssl_certfile = malloc(strlen(conf_biphome) +
|
conf_ssl_certfile = bip_malloc(strlen(conf_biphome) +
|
||||||
strlen(ap) + 1);
|
strlen(ap) + 1);
|
||||||
strcpy(conf_ssl_certfile, conf_biphome);
|
strcpy(conf_ssl_certfile, conf_biphome);
|
||||||
strcat(conf_ssl_certfile, ap);
|
strcat(conf_ssl_certfile, ap);
|
||||||
@ -2082,7 +2084,7 @@ int adm_bip(bip_t *bip, struct link_client *ic, struct line *line,
|
|||||||
}
|
}
|
||||||
line->elemv = realloc(line->elemv,
|
line->elemv = realloc(line->elemv,
|
||||||
(line->elemc + 1) * sizeof(char *));
|
(line->elemc + 1) * sizeof(char *));
|
||||||
line->elemv[line->elemc] = malloc(slen + 1);
|
line->elemv[line->elemc] = bip_malloc(slen + 1);
|
||||||
memcpy(line->elemv[line->elemc], ptr, slen);
|
memcpy(line->elemv[line->elemc], ptr, slen);
|
||||||
line->elemv[line->elemc][slen] = 0;
|
line->elemv[line->elemc][slen] = 0;
|
||||||
line->elemc++;
|
line->elemc++;
|
||||||
@ -2094,7 +2096,7 @@ int adm_bip(bip_t *bip, struct link_client *ic, struct line *line,
|
|||||||
line->elemv = realloc(line->elemv,
|
line->elemv = realloc(line->elemv,
|
||||||
(line->elemc + 1) * sizeof(char *));
|
(line->elemc + 1) * sizeof(char *));
|
||||||
slen = eptr - ptr;
|
slen = eptr - ptr;
|
||||||
line->elemv[line->elemc] = malloc(slen + 1);
|
line->elemv[line->elemc] = bip_malloc(slen + 1);
|
||||||
memcpy(line->elemv[line->elemc], ptr, slen);
|
memcpy(line->elemv[line->elemc], ptr, slen);
|
||||||
line->elemv[line->elemc][slen] = 0;
|
line->elemv[line->elemc][slen] = 0;
|
||||||
line->elemc++;
|
line->elemc++;
|
||||||
|
@ -20,6 +20,8 @@ extern int yylex (void);
|
|||||||
extern char *yytext;
|
extern char *yytext;
|
||||||
extern int linec;
|
extern int linec;
|
||||||
|
|
||||||
|
#define YYMALLOC bip_malloc
|
||||||
|
|
||||||
int yywrap()
|
int yywrap()
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -479,7 +479,7 @@ static void data_find_lines(connection_t *cn)
|
|||||||
if (ssz >= 1) {
|
if (ssz >= 1) {
|
||||||
if (p[len - 1] == '\r')
|
if (p[len - 1] == '\r')
|
||||||
ssz--;
|
ssz--;
|
||||||
buf = malloc(ssz + 1);
|
buf = bip_malloc(ssz + 1);
|
||||||
memcpy(buf, p + lastlen, ssz);
|
memcpy(buf, p + lastlen, ssz);
|
||||||
buf[ssz] = 0;
|
buf[ssz] = 0;
|
||||||
|
|
||||||
@ -891,7 +891,7 @@ static void create_socket(char *dsthostname, char *dstport, char *srchostname,
|
|||||||
|
|
||||||
cn->connected = CONN_ERROR;
|
cn->connected = CONN_ERROR;
|
||||||
cdata = (struct connecting_data *)
|
cdata = (struct connecting_data *)
|
||||||
malloc(sizeof(struct connecting_data));
|
bip_malloc(sizeof(struct connecting_data));
|
||||||
if (!cdata)
|
if (!cdata)
|
||||||
fatal("Out of memory.");
|
fatal("Out of memory.");
|
||||||
cdata->dst = cdata->src = cdata->cur = NULL;
|
cdata->dst = cdata->src = cdata->cur = NULL;
|
||||||
@ -998,7 +998,7 @@ static connection_t *connection_init(int anti_flood, int ssl, int timeout,
|
|||||||
list_t *outgoing;
|
list_t *outgoing;
|
||||||
|
|
||||||
conn = (connection_t *)calloc(sizeof(connection_t), 1);
|
conn = (connection_t *)calloc(sizeof(connection_t), 1);
|
||||||
incoming = (char*)malloc(sizeof(char) * CONN_BUFFER_SIZE);
|
incoming = (char *)bip_malloc(CONN_BUFFER_SIZE);
|
||||||
outgoing = list_new(NULL);
|
outgoing = list_new(NULL);
|
||||||
|
|
||||||
conn->anti_flood = anti_flood;
|
conn->anti_flood = anti_flood;
|
||||||
@ -1586,9 +1586,7 @@ static char *socket_ip(int fd, int remote)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ip = malloc(65);
|
ip = bip_malloc(65);
|
||||||
if (ip == NULL)
|
|
||||||
fatal("malloc");
|
|
||||||
|
|
||||||
switch (addr.sa_family) {
|
switch (addr.sa_family) {
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
|
39
src/irc.c
39
src/irc.c
@ -97,9 +97,7 @@ char *nick_from_ircmask(char *mask)
|
|||||||
if (!*nick)
|
if (!*nick)
|
||||||
return strdup(mask);
|
return strdup(mask);
|
||||||
len = nick - mask;
|
len = nick - mask;
|
||||||
ret = malloc(len + 1);
|
ret = bip_malloc(len + 1);
|
||||||
if (!ret)
|
|
||||||
fatal("malloc");
|
|
||||||
memcpy(ret, mask, len);
|
memcpy(ret, mask, len);
|
||||||
ret[len] = 0;
|
ret[len] = 0;
|
||||||
return ret;
|
return ret;
|
||||||
@ -115,7 +113,7 @@ list_t *channel_name_list(struct channel *c)
|
|||||||
ret = list_new(NULL);
|
ret = list_new(NULL);
|
||||||
|
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
char *str = malloc(NAMESIZE);
|
char *str = bip_malloc(NAMESIZE);
|
||||||
*str = 0;
|
*str = 0;
|
||||||
for (hash_it_init(&c->nicks, &hi); hash_it_item(&hi);
|
for (hash_it_init(&c->nicks, &hi); hash_it_item(&hi);
|
||||||
hash_it_next(&hi)){
|
hash_it_next(&hi)){
|
||||||
@ -127,7 +125,7 @@ list_t *channel_name_list(struct channel *c)
|
|||||||
if (len + strlen(n->name) + 2 + (n->ovmask ? 1 : 0)
|
if (len + strlen(n->name) + 2 + (n->ovmask ? 1 : 0)
|
||||||
>= NAMESIZE) {
|
>= NAMESIZE) {
|
||||||
list_add_last(ret, str);
|
list_add_last(ret, str);
|
||||||
str = malloc(s);
|
str = bip_malloc(s);
|
||||||
*str = 0;
|
*str = 0;
|
||||||
len = 0;
|
len = 0;
|
||||||
}
|
}
|
||||||
@ -247,7 +245,7 @@ static void irc_server_connected(struct link_server *server)
|
|||||||
for (list_it_init(&LINK(server)->on_connect_send, &itocs);
|
for (list_it_init(&LINK(server)->on_connect_send, &itocs);
|
||||||
list_it_item(&itocs); list_it_next(&itocs)) {
|
list_it_item(&itocs); list_it_next(&itocs)) {
|
||||||
ssize_t len = strlen(list_it_item(&itocs)) + 2;
|
ssize_t len = strlen(list_it_item(&itocs)) + 2;
|
||||||
char *str = malloc(len + 1);
|
char *str = bip_malloc(len + 1);
|
||||||
sprintf(str, "%s\r\n", (char *)list_it_item(&itocs));
|
sprintf(str, "%s\r\n", (char *)list_it_item(&itocs));
|
||||||
write_line(CONN(server), str);
|
write_line(CONN(server), str);
|
||||||
free(str);
|
free(str);
|
||||||
@ -393,7 +391,7 @@ int irc_dispatch_server(bip_t *bip, struct link_server *server,
|
|||||||
} else if (strcmp(line->elemv[0], "433") == 0) {
|
} else if (strcmp(line->elemv[0], "433") == 0) {
|
||||||
if (LINK(server)->s_state != IRCS_CONNECTED) {
|
if (LINK(server)->s_state != IRCS_CONNECTED) {
|
||||||
size_t nicklen = strlen(server->nick);
|
size_t nicklen = strlen(server->nick);
|
||||||
char *newnick = malloc(nicklen + 2);
|
char *newnick = bip_malloc(nicklen + 2);
|
||||||
strcpy(newnick, server->nick);
|
strcpy(newnick, server->nick);
|
||||||
if (strlen(server->nick) < 9) {
|
if (strlen(server->nick) < 9) {
|
||||||
strcat(newnick, "`");
|
strcat(newnick, "`");
|
||||||
@ -518,7 +516,7 @@ static void irc_send_join(struct link_client *ic, struct channel *chan)
|
|||||||
if (!user)
|
if (!user)
|
||||||
fatal("irc_send_join: No user associated");
|
fatal("irc_send_join: No user associated");
|
||||||
|
|
||||||
ircmask = malloc(strlen(LINK(ic)->l_server->nick) +
|
ircmask = bip_malloc(strlen(LINK(ic)->l_server->nick) +
|
||||||
strlen("!bip@bip.bip.bip") + 1);
|
strlen("!bip@bip.bip.bip") + 1);
|
||||||
strcpy(ircmask, LINK(ic)->l_server->nick);
|
strcpy(ircmask, LINK(ic)->l_server->nick);
|
||||||
strcat(ircmask, "!bip@bip.bip.bip");
|
strcat(ircmask, "!bip@bip.bip.bip");
|
||||||
@ -646,7 +644,7 @@ static char *get_str_elem(char *str, int num)
|
|||||||
}
|
}
|
||||||
if (c - cur < 1)
|
if (c - cur < 1)
|
||||||
return NULL;
|
return NULL;
|
||||||
ret = malloc(c - cur + 1);
|
ret = bip_malloc(c - cur + 1);
|
||||||
strncpy(ret, cur, c - cur);
|
strncpy(ret, cur, c - cur);
|
||||||
ret[c - cur] = 0;
|
ret[c - cur] = 0;
|
||||||
return ret;
|
return ret;
|
||||||
@ -655,7 +653,7 @@ static char *get_str_elem(char *str, int num)
|
|||||||
c = str + strlen(str);
|
c = str + strlen(str);
|
||||||
if (c - cur < 1)
|
if (c - cur < 1)
|
||||||
return NULL;
|
return NULL;
|
||||||
ret = malloc(c - cur + 1);
|
ret = bip_malloc(c - cur + 1);
|
||||||
strncpy(ret, cur, c - cur);
|
strncpy(ret, cur, c - cur);
|
||||||
ret[c - cur] = 0;
|
ret[c - cur] = 0;
|
||||||
return ret;
|
return ret;
|
||||||
@ -1009,7 +1007,7 @@ static int irc_cli_join(struct link_client *irc, struct line *line)
|
|||||||
|
|
||||||
while ((e = strchr(s, ','))) {
|
while ((e = strchr(s, ','))) {
|
||||||
size_t len = e - s;
|
size_t len = e - s;
|
||||||
char *p = malloc(len + 1);
|
char *p = bip_malloc(len + 1);
|
||||||
size_t klen;
|
size_t klen;
|
||||||
char *kp = NULL;
|
char *kp = NULL;
|
||||||
|
|
||||||
@ -1021,7 +1019,7 @@ static int irc_cli_join(struct link_client *irc, struct line *line)
|
|||||||
if (!ke)
|
if (!ke)
|
||||||
ke = ks + strlen(ks);
|
ke = ks + strlen(ks);
|
||||||
klen = ke - ks;
|
klen = ke - ks;
|
||||||
kp = malloc(klen + 1);
|
kp = bip_malloc(klen + 1);
|
||||||
memcpy(kp, ks, klen);
|
memcpy(kp, ks, klen);
|
||||||
kp[klen] = 0;
|
kp[klen] = 0;
|
||||||
if (*ke == 0)
|
if (*ke == 0)
|
||||||
@ -1168,7 +1166,7 @@ static void irc_copy_cli(struct link_client *src, struct link_client *dest,
|
|||||||
if (len == 0)
|
if (len == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
tmp = malloc(len);
|
tmp = bip_malloc(len);
|
||||||
|
|
||||||
snprintf(tmp, len, " -> %s", line->elemv[2]);
|
snprintf(tmp, len, " -> %s", line->elemv[2]);
|
||||||
tmp[len - 1] = 0;
|
tmp[len - 1] = 0;
|
||||||
@ -1398,15 +1396,11 @@ static int irc_353(struct link_server *server, struct line *line)
|
|||||||
eon++;
|
eon++;
|
||||||
|
|
||||||
len = eon - names;
|
len = eon - names;
|
||||||
tmp = malloc(len + 1);
|
tmp = bip_malloc(len + 1);
|
||||||
if (!tmp)
|
|
||||||
fatal("malloc");
|
|
||||||
memcpy(tmp, names, len);
|
memcpy(tmp, names, len);
|
||||||
tmp[len] = 0;
|
tmp[len] = 0;
|
||||||
|
|
||||||
nick = malloc(sizeof(struct nick));
|
nick = bip_malloc(sizeof(struct nick));
|
||||||
if (!nick)
|
|
||||||
fatal("malloc");
|
|
||||||
nick->name = tmp;
|
nick->name = tmp;
|
||||||
nick->ovmask = ovmask;
|
nick->ovmask = ovmask;
|
||||||
|
|
||||||
@ -1698,7 +1692,7 @@ static int irc_mode(struct link_server *server, struct line *line)
|
|||||||
|
|
||||||
static char *irc_timestamp(void)
|
static char *irc_timestamp(void)
|
||||||
{
|
{
|
||||||
char *ts = malloc(21);
|
char *ts = bip_malloc(21);
|
||||||
snprintf(ts, 20, "%ld", (long int)time(NULL));
|
snprintf(ts, 20, "%ld", (long int)time(NULL));
|
||||||
return ts;
|
return ts;
|
||||||
}
|
}
|
||||||
@ -2191,10 +2185,7 @@ void oidentd_dump(bip_t *bip)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
content = (char *)malloc(stats.st_size + 1);
|
content = (char *)bip_malloc(stats.st_size + 1);
|
||||||
|
|
||||||
if (content == NULL)
|
|
||||||
fatal("out of memory");
|
|
||||||
|
|
||||||
if (fread(content, 1, stats.st_size, f) !=
|
if (fread(content, 1, stats.st_size, f) !=
|
||||||
(size_t)stats.st_size) {
|
(size_t)stats.st_size) {
|
||||||
|
@ -115,9 +115,7 @@ list_t *parse_conf(FILE *file, int *err)
|
|||||||
"client_side_ssl_pem" { return LEX_CSS_PEM; }
|
"client_side_ssl_pem" { return LEX_CSS_PEM; }
|
||||||
\"[^"]*\" {
|
\"[^"]*\" {
|
||||||
size_t len = strlen(yytext) - 2;
|
size_t len = strlen(yytext) - 2;
|
||||||
yylval.string = malloc(len + 1);
|
yylval.string = bip_malloc(len + 1);
|
||||||
if (!yylval.string)
|
|
||||||
fatal("malloc");
|
|
||||||
memcpy(yylval.string, yytext + 1, len);
|
memcpy(yylval.string, yytext + 1, len);
|
||||||
yylval.string[len] = 0;
|
yylval.string[len] = 0;
|
||||||
return LEX_STRING;
|
return LEX_STRING;
|
||||||
|
16
src/line.c
16
src/line.c
@ -22,9 +22,7 @@ void irc_line_init(struct line *l)
|
|||||||
struct line *irc_line_new()
|
struct line *irc_line_new()
|
||||||
{
|
{
|
||||||
struct line *l;
|
struct line *l;
|
||||||
l = malloc(sizeof(struct line));
|
l = bip_malloc(sizeof(struct line));
|
||||||
if (!l)
|
|
||||||
fatal("malloc");
|
|
||||||
irc_line_init(l);
|
irc_line_init(l);
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
@ -53,7 +51,7 @@ struct line *irc_line_dup(struct line *line)
|
|||||||
struct line *nl = irc_line_new();
|
struct line *nl = irc_line_new();
|
||||||
nl->origin = line->origin ? strdup(line->origin) : NULL;
|
nl->origin = line->origin ? strdup(line->origin) : NULL;
|
||||||
nl->elemc = line->elemc;
|
nl->elemc = line->elemc;
|
||||||
nl->elemv = malloc(sizeof(char *) * line->elemc);
|
nl->elemv = bip_malloc(sizeof(char *) * line->elemc);
|
||||||
for (i = 0; i < line->elemc; i++)
|
for (i = 0; i < line->elemc; i++)
|
||||||
nl->elemv[i] = strdup(line->elemv[i]);
|
nl->elemv[i] = strdup(line->elemv[i]);
|
||||||
nl->colon = line->colon;
|
nl->colon = line->colon;
|
||||||
@ -86,7 +84,7 @@ char *irc_line_to_string(struct line *l)
|
|||||||
len += strlen(l->elemv[i]) + 1;
|
len += strlen(l->elemv[i]) + 1;
|
||||||
len += 1; /* remove one trailing space and add \r\n */
|
len += 1; /* remove one trailing space and add \r\n */
|
||||||
len++; /* last args ":" */
|
len++; /* last args ":" */
|
||||||
ret = malloc(len + 1);
|
ret = bip_malloc(len + 1);
|
||||||
ret[0] = 0;
|
ret[0] = 0;
|
||||||
|
|
||||||
if (l->origin) {
|
if (l->origin) {
|
||||||
@ -127,9 +125,7 @@ struct line *irc_line(char *str)
|
|||||||
if (!*space)
|
if (!*space)
|
||||||
return NULL;
|
return NULL;
|
||||||
len = space - str - 1; /* leading ':' */
|
len = space - str - 1; /* leading ':' */
|
||||||
line->origin = malloc(len + 1);
|
line->origin = bip_malloc(len + 1);
|
||||||
if (!line->origin)
|
|
||||||
fatal("malloc");
|
|
||||||
memcpy(line->origin, str + 1, len);
|
memcpy(line->origin, str + 1, len);
|
||||||
line->origin[len] = 0;
|
line->origin[len] = 0;
|
||||||
str = space;
|
str = space;
|
||||||
@ -158,9 +154,7 @@ struct line *irc_line(char *str)
|
|||||||
space++;
|
space++;
|
||||||
}
|
}
|
||||||
len = space - str;
|
len = space - str;
|
||||||
tmp = line->elemv[curelem] = malloc(len + 1);
|
tmp = line->elemv[curelem] = bip_malloc(len + 1);
|
||||||
if (!tmp)
|
|
||||||
fatal("malloc");
|
|
||||||
memcpy(tmp, str, len);
|
memcpy(tmp, str, len);
|
||||||
tmp[len] = 0;
|
tmp[len] = 0;
|
||||||
if (curelem == 0)
|
if (curelem == 0)
|
||||||
|
26
src/log.c
26
src/log.c
@ -76,7 +76,7 @@ int check_dir_r(char *dirname)
|
|||||||
|
|
||||||
mylog(LOG_DEBUGVERB, "Recursive check of %s engaged", dirname);
|
mylog(LOG_DEBUGVERB, "Recursive check of %s engaged", dirname);
|
||||||
tmp = dirname;
|
tmp = dirname;
|
||||||
dir = (char *)malloc(sizeof(char) * (len + 1));
|
dir = (char *)bip_malloc(len + 1);
|
||||||
while (*tmp) {
|
while (*tmp) {
|
||||||
int slash_ok = 1;
|
int slash_ok = 1;
|
||||||
while (*tmp == '/') {
|
while (*tmp == '/') {
|
||||||
@ -140,9 +140,7 @@ char *log_build_filename(log_t *logdata, char *destination)
|
|||||||
strtolower(dest);
|
strtolower(dest);
|
||||||
|
|
||||||
log_format_len = strlen(conf_log_format);
|
log_format_len = strlen(conf_log_format);
|
||||||
logfile = (char*)malloc((MAX_PATH_LEN + 1)*sizeof(char));
|
logfile = (char *)bip_malloc(MAX_PATH_LEN + 1);
|
||||||
if (!logfile)
|
|
||||||
fatal("out of memory");
|
|
||||||
|
|
||||||
time(&s);
|
time(&s);
|
||||||
now = localtime(&s);
|
now = localtime(&s);
|
||||||
@ -232,9 +230,7 @@ static int log_add_file(log_t *logdata, char *destination, char *filename)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
lf = malloc(sizeof(logfile_t));
|
lf = bip_malloc(sizeof(logfile_t));
|
||||||
if (!lf)
|
|
||||||
fatal("out of memory");
|
|
||||||
lf->file = f;
|
lf->file = f;
|
||||||
lf->filename = strdup(filename);
|
lf->filename = strdup(filename);
|
||||||
if (!lf->filename)
|
if (!lf->filename)
|
||||||
@ -557,7 +553,7 @@ void log_init_topic_time(log_t *logdata, char *channel, char *who, char *when)
|
|||||||
|
|
||||||
seconds = atoi(when);
|
seconds = atoi(when);
|
||||||
time = localtime(&seconds);
|
time = localtime(&seconds);
|
||||||
timestr = (char*)malloc(sizeof(char) * (50 + 1));
|
timestr = (char *)bip_malloc(50 + 1);
|
||||||
timestr[0] = '\0';
|
timestr[0] = '\0';
|
||||||
if (time)
|
if (time)
|
||||||
strftime(timestr, 50, "%A %d %B %Y, %H:%M:%S", time);
|
strftime(timestr, 50, "%A %d %B %Y, %H:%M:%S", time);
|
||||||
@ -574,8 +570,8 @@ void log_mode(log_t *logdata, char *ircmask, char *channel, char *modes,
|
|||||||
char **modargv, unsigned modargc)
|
char **modargv, unsigned modargc)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
char *tmpbuf = malloc(LOGLINE_MAXLEN + 1);
|
char *tmpbuf = bip_malloc(LOGLINE_MAXLEN + 1);
|
||||||
char *tmpbuf2 = malloc(LOGLINE_MAXLEN + 1);
|
char *tmpbuf2 = bip_malloc(LOGLINE_MAXLEN + 1);
|
||||||
char *tmp;
|
char *tmp;
|
||||||
snprintf(tmpbuf, LOGLINE_MAXLEN, "%s -!- mode/%s [%s", timestamp(),
|
snprintf(tmpbuf, LOGLINE_MAXLEN, "%s -!- mode/%s [%s", timestamp(),
|
||||||
channel, modes);
|
channel, modes);
|
||||||
@ -853,11 +849,9 @@ char *log_beautify(log_t *logdata, char *buf, char *dest)
|
|||||||
if (lom == 0)
|
if (lom == 0)
|
||||||
return _log_wrap(dest, buf);
|
return _log_wrap(dest, buf);
|
||||||
|
|
||||||
p = ret = (char *)malloc(
|
p = ret = (char *)bip_malloc(
|
||||||
1 + lon + strlen(LAMESTRING) + lod + 2 + lots + 2 + lom + 3
|
1 + lon + strlen(LAMESTRING) + lod + 2 + lots + 2 + lom + 3
|
||||||
+ action * (2 + strlen("ACTION ")) + out * strlen(PMSG_ARROW));
|
+ action * (2 + strlen("ACTION ")) + out * strlen(PMSG_ARROW));
|
||||||
if (!p)
|
|
||||||
fatal("out of memory");
|
|
||||||
|
|
||||||
*p++ = ':';
|
*p++ = ':';
|
||||||
|
|
||||||
@ -947,7 +941,7 @@ char *log_backread(log_t *logdata, char *destination, int *skip)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
buf = (char *)malloc((LOGLINE_MAXLEN + 1) * sizeof(char));
|
buf = (char *)bip_malloc(LOGLINE_MAXLEN + 1);
|
||||||
|
|
||||||
next_file:
|
next_file:
|
||||||
/* check the files containing data to backlog */
|
/* check the files containing data to backlog */
|
||||||
@ -1090,7 +1084,7 @@ static char *_log_wrap(char *dest, char *line)
|
|||||||
char *buf;
|
char *buf;
|
||||||
size_t count;
|
size_t count;
|
||||||
|
|
||||||
buf = malloc(LOGLINE_MAXLEN + 1);
|
buf = bip_malloc(LOGLINE_MAXLEN + 1);
|
||||||
count = snprintf(buf, LOGLINE_MAXLEN + 1,
|
count = snprintf(buf, LOGLINE_MAXLEN + 1,
|
||||||
":" P_IRCMASK " PRIVMSG %s :%s\r\n", dest, line);
|
":" P_IRCMASK " PRIVMSG %s :%s\r\n", dest, line);
|
||||||
if (count >= LOGLINE_MAXLEN + 1) {
|
if (count >= LOGLINE_MAXLEN + 1) {
|
||||||
@ -1186,7 +1180,7 @@ log_t *log_new(struct user *user, char *network)
|
|||||||
logdata->user = user;
|
logdata->user = user;
|
||||||
logdata->network = strdup(network);
|
logdata->network = strdup(network);
|
||||||
hash_init(&logdata->logfgs, HASH_NOCASE);
|
hash_init(&logdata->logfgs, HASH_NOCASE);
|
||||||
logdata->buffer = (char *)malloc((LOGLINE_MAXLEN + 1) * sizeof(char));
|
logdata->buffer = (char *)bip_malloc(LOGLINE_MAXLEN + 1);
|
||||||
logdata->buffer[LOGLINE_MAXLEN - 1] = 0; // debug
|
logdata->buffer[LOGLINE_MAXLEN - 1] = 0; // debug
|
||||||
logdata->buffer[LOGLINE_MAXLEN] = 0;
|
logdata->buffer[LOGLINE_MAXLEN] = 0;
|
||||||
if (!logdata->user || !logdata->network || !logdata->buffer)
|
if (!logdata->user || !logdata->network || !logdata->buffer)
|
||||||
|
@ -380,14 +380,14 @@ unsigned char *chash_double(char *str, unsigned int seed)
|
|||||||
|
|
||||||
length = strlen(str);
|
length = strlen(str);
|
||||||
length += 4;
|
length += 4;
|
||||||
ptr = malloc(length);
|
ptr = bip_malloc(length);
|
||||||
ptr[0] = seed >> 24 & 0xff;
|
ptr[0] = seed >> 24 & 0xff;
|
||||||
ptr[1] = seed >> 16 & 0xff;
|
ptr[1] = seed >> 16 & 0xff;
|
||||||
ptr[2] = seed >> 8 & 0xff;
|
ptr[2] = seed >> 8 & 0xff;
|
||||||
ptr[3] = seed & 0xff;
|
ptr[3] = seed & 0xff;
|
||||||
memcpy(ptr + 4, str, length - 4);
|
memcpy(ptr + 4, str, length - 4);
|
||||||
|
|
||||||
md5 = malloc(16 + 4);
|
md5 = bip_malloc(16 + 4);
|
||||||
memcpy(md5, ptr, 4);
|
memcpy(md5, ptr, 4);
|
||||||
|
|
||||||
md5_starts(&ctx);
|
md5_starts(&ctx);
|
||||||
|
29
src/util.c
29
src/util.c
@ -27,6 +27,17 @@
|
|||||||
extern int conf_log_level;
|
extern int conf_log_level;
|
||||||
extern int conf_log_system;
|
extern int conf_log_system;
|
||||||
extern int errno;
|
extern int errno;
|
||||||
|
extern FILE *conf_global_log_file;
|
||||||
|
|
||||||
|
void *bip_malloc(size_t size)
|
||||||
|
{
|
||||||
|
void *r = malloc(size);
|
||||||
|
if (!r) {
|
||||||
|
fprintf(conf_global_log_file, 1, strlen("malloc"), "malloc");
|
||||||
|
exit(28);
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <nick> ::= <letter> { <letter> | <number> | <special> }
|
* <nick> ::= <letter> { <letter> | <number> | <special> }
|
||||||
@ -104,8 +115,6 @@ char *checkmode2text(int v)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern FILE *conf_global_log_file;
|
|
||||||
|
|
||||||
void _mylog(int level, char *fmt, va_list ap)
|
void _mylog(int level, char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
char *prefix;
|
char *prefix;
|
||||||
@ -196,9 +205,7 @@ void list_init(list_t *l, int (*cmp)(void *, void *))
|
|||||||
list_t *list_new(int (*cmp)(void *, void *))
|
list_t *list_new(int (*cmp)(void *, void *))
|
||||||
{
|
{
|
||||||
list_t *l;
|
list_t *l;
|
||||||
l = malloc(sizeof(list_t));
|
l = bip_malloc(sizeof(list_t));
|
||||||
if (!l)
|
|
||||||
fatal("malloc");
|
|
||||||
list_init(l, cmp);
|
list_init(l, cmp);
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
@ -206,9 +213,7 @@ list_t *list_new(int (*cmp)(void *, void *))
|
|||||||
static struct list_item *list_item(void *ptr)
|
static struct list_item *list_item(void *ptr)
|
||||||
{
|
{
|
||||||
struct list_item *l;
|
struct list_item *l;
|
||||||
l = malloc(sizeof(struct list_item));
|
l = bip_malloc(sizeof(struct list_item));
|
||||||
if (!l)
|
|
||||||
fatal("malloc");
|
|
||||||
l->ptr = ptr;
|
l->ptr = ptr;
|
||||||
l->next = NULL;
|
l->next = NULL;
|
||||||
l->prev = NULL;
|
l->prev = NULL;
|
||||||
@ -475,9 +480,7 @@ void hash_free(hash_t *h)
|
|||||||
hash_t *hash_new(int options)
|
hash_t *hash_new(int options)
|
||||||
{
|
{
|
||||||
hash_t *h;
|
hash_t *h;
|
||||||
h = malloc(sizeof(hash_t));
|
h = bip_malloc(sizeof(hash_t));
|
||||||
if (!h)
|
|
||||||
fatal("malloc");
|
|
||||||
hash_init(h, options);
|
hash_init(h, options);
|
||||||
return h;
|
return h;
|
||||||
}
|
}
|
||||||
@ -500,9 +503,7 @@ void hash_insert(hash_t *hash, char *key, void *ptr)
|
|||||||
if (hash_get(hash, key))
|
if (hash_get(hash, key))
|
||||||
fatal("Element with key %s already in hash %x\n", key, hash);
|
fatal("Element with key %s already in hash %x\n", key, hash);
|
||||||
|
|
||||||
it = malloc(sizeof(struct hash_item));
|
it = bip_malloc(sizeof(struct hash_item));
|
||||||
if (!it)
|
|
||||||
fatal("malloc");
|
|
||||||
it->key = strdup(key);
|
it->key = strdup(key);
|
||||||
it->item = ptr;
|
it->item = ptr;
|
||||||
list_add_first(&hash->lists[hash_func(key)], it);
|
list_add_first(&hash->lists[hash_func(key)], it);
|
||||||
|
@ -123,5 +123,6 @@ char *hrtime(time_t t);
|
|||||||
char *checkmode2text(int v);
|
char *checkmode2text(int v);
|
||||||
#endif
|
#endif
|
||||||
#define bool2text(v) ((v) ? "true" : "false")
|
#define bool2text(v) ((v) ? "true" : "false")
|
||||||
|
void *bip_malloc(size_t size);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user