Cleanup check_mode_lock() a little bit. Use strlcat, rather than strcat.

Prefer m_strdup over malloc_strcpy.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@366 13b04d17-f746-0410-82c6-800466cd88b0
This commit is contained in:
Tim Cava
2013-08-23 04:49:54 +00:00
parent 56f5eceb26
commit 4ba3f45a89

View File

@@ -294,26 +294,22 @@ char *s;
int check_mode_lock(char *channel, char *mode_list, int server) int check_mode_lock(char *channel, char *mode_list, int server)
{ {
ChannelList *chan; ChannelList *chan;
char buffer[BIG_BUFFER_SIZE+1]; char buffer[BIG_BUFFER_SIZE];
if ((chan = lookup_channel(channel, server, 0)) && chan->modelock_key) if ((chan = lookup_channel(channel, server, 0)) && chan->modelock_key)
{ {
char *newmode; char *modelock, *new_mode_list, *newmode, *save, *save1;
char *modelock = NULL;
char *new_mode_list = NULL;
char *save, *save1;
char *args = NULL, *args1 = NULL; char *args = NULL, *args1 = NULL;
int add = 0; int add = 0;
memset(buffer, 0, sizeof(buffer));
*buffer = 0;
modelock = m_strdup(chan->modelock_key);
malloc_strcpy(&modelock, chan->modelock_key); new_mode_list = m_strdup(mode_list);
malloc_strcpy(&new_mode_list, mode_list);
save1 = new_mode_list;
save = modelock; save = modelock;
new_mode_list = next_arg(new_mode_list, &args1); save1 = new_mode_list;
modelock = next_arg(modelock, &args); modelock = next_arg(modelock, &args);
new_mode_list = next_arg(new_mode_list, &args1);
while (*modelock) while (*modelock)
{ {
@@ -335,25 +331,25 @@ char buffer[BIG_BUFFER_SIZE+1];
key = next_arg(args1, &args1); key = next_arg(args1, &args1);
if (chan->key) if (chan->key)
{ {
strcat(buffer, "-k " ); strlcat(buffer, "-k ", sizeof buffer);
strcat(buffer, chan->key); strlcat(buffer, chan->key, sizeof buffer);
} }
key = next_arg(args, &args); key = next_arg(args, &args);
if (key) if (key)
{ {
strcat(buffer, " +k "); strlcat(buffer, " +k ", sizeof buffer);
strcat(buffer, key); strlcat(buffer, key, sizeof buffer);
strcat(buffer, space); strlcat(buffer, space, sizeof buffer);
} }
} }
else else
{ {
if (!chan->key) if (!chan->key)
break; break;
strcat(buffer, "-k "); strlcat(buffer, "-k ", sizeof buffer);
strcat(buffer, chan->key); strlcat(buffer, chan->key, sizeof buffer);
} }
strcat(buffer, space); strlcat(buffer, space, sizeof buffer);
} }
break; break;
case 'l': case 'l':
@@ -366,15 +362,15 @@ char buffer[BIG_BUFFER_SIZE+1];
limit = strtoul(args, &args, 10); limit = strtoul(args, &args, 10);
if (limit > 0) if (limit > 0)
{ {
strcat(buffer, "+l "); strlcat(buffer, "+l ", sizeof buffer);
strcat(buffer, ltoa(limit)); strlcat(buffer, ltoa(limit), sizeof buffer);
strcat(buffer, space); strlcat(buffer, space, sizeof buffer);
} }
} }
else else
{ {
chan->limit = 0; chan->limit = 0;
strcat(buffer, "-l"); strlcat(buffer, "-l", sizeof buffer);
} }
} }
break; break;
@@ -383,14 +379,14 @@ char buffer[BIG_BUFFER_SIZE+1];
{ {
if (add) if (add)
{ {
strcat(buffer, "+"); strlcat(buffer, "+", sizeof buffer);
} }
else else
{ {
strcat(buffer, "-"); strlcat(buffer, "-", sizeof buffer);
} }
buffer[strlen(buffer)] = *modelock; buffer[strlen(buffer)] = *modelock;
strcat(buffer, space); strlcat(buffer, space, sizeof buffer);
} }
break; break;
} }