Increase max number of words a line can be split into
This may have unintended side-effects but 32 is a very low value and I was seeing real world bugs being caused by this. Specifically an ISUPPORT line with more features than this could store.
This commit is contained in:
parent
163608d7fd
commit
453cb7ca79
@ -35,6 +35,8 @@
|
||||
|
||||
#include <hexchat-plugin.h>
|
||||
|
||||
#define WORD_ARRAY_LEN 48
|
||||
|
||||
static char plugin_name[] = "Lua";
|
||||
static char plugin_description[] = "Lua scripting interface";
|
||||
static char plugin_version[16] = "1.3";
|
||||
@ -275,13 +277,13 @@ static int api_command_closure(char *word[], char *word_eol[], void *udata)
|
||||
base = lua_gettop(L);
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
||||
lua_newtable(L);
|
||||
for(i = 1; i < 32 && *word_eol[i]; i++)
|
||||
for(i = 1; i < WORD_ARRAY_LEN && *word_eol[i]; i++)
|
||||
{
|
||||
lua_pushstring(L, word[i]);
|
||||
lua_rawseti(L, -2, i);
|
||||
}
|
||||
lua_newtable(L);
|
||||
for(i = 1; i < 32 && *word_eol[i]; i++)
|
||||
for(i = 1; i < WORD_ARRAY_LEN && *word_eol[i]; i++)
|
||||
{
|
||||
lua_pushstring(L, word_eol[i]);
|
||||
lua_rawseti(L, -2, i);
|
||||
@ -462,13 +464,13 @@ static int api_server_closure(char *word[], char *word_eol[], void *udata)
|
||||
base = lua_gettop(L);
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
||||
lua_newtable(L);
|
||||
for(i = 1; i < 32 && *word_eol[i]; i++)
|
||||
for(i = 1; i < WORD_ARRAY_LEN && *word_eol[i]; i++)
|
||||
{
|
||||
lua_pushstring(L, word[i]);
|
||||
lua_rawseti(L, -2, i);
|
||||
}
|
||||
lua_newtable(L);
|
||||
for(i = 1; i < 32 && *word_eol[i]; i++)
|
||||
for(i = 1; i < WORD_ARRAY_LEN && *word_eol[i]; i++)
|
||||
{
|
||||
lua_pushstring(L, word_eol[i]);
|
||||
lua_rawseti(L, -2, i);
|
||||
@ -521,13 +523,13 @@ static int api_server_attrs_closure(char *word[], char *word_eol[], hexchat_even
|
||||
base = lua_gettop(L);
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
||||
lua_newtable(L);
|
||||
for(i = 1; i < 32 && *word_eol[i]; i++)
|
||||
for(i = 1; i < WORD_ARRAY_LEN && *word_eol[i]; i++)
|
||||
{
|
||||
lua_pushstring(L, word[i]);
|
||||
lua_rawseti(L, -2, i);
|
||||
}
|
||||
lua_newtable(L);
|
||||
for(i = 1; i < 32 && *word_eol[i]; i++)
|
||||
for(i = 1; i < WORD_ARRAY_LEN && *word_eol[i]; i++)
|
||||
{
|
||||
lua_pushstring(L, word_eol[i]);
|
||||
lua_rawseti(L, -2, i);
|
||||
|
@ -283,6 +283,8 @@ list_item_to_sv ( hexchat_list *list, const char *const *fields )
|
||||
return sv_2mortal (newRV_noinc ((SV *) hash));
|
||||
}
|
||||
|
||||
#define WORD_ARRAY_LEN 48
|
||||
|
||||
static AV *
|
||||
array2av (char *array[])
|
||||
{
|
||||
@ -293,7 +295,7 @@ array2av (char *array[])
|
||||
|
||||
for (
|
||||
count = 1;
|
||||
count < 32 && array[count] != NULL && array[count][0] != 0;
|
||||
count < WORD_ARRAY_LEN && array[count] != NULL && array[count][0] != 0;
|
||||
count++
|
||||
) {
|
||||
temp = newSVpv (array[count], 0);
|
||||
|
@ -75,7 +75,7 @@
|
||||
#define DOMAINLEN 100
|
||||
#define NICKLEN 64 /* including the NULL, so 63 really */
|
||||
#define CHANLEN 300
|
||||
#define PDIWORDS 32
|
||||
#define PDIWORDS 48
|
||||
#define USERNAMELEN 10
|
||||
#define HIDDEN_CHAR 8 /* invisible character for xtext */
|
||||
|
||||
|
@ -662,11 +662,11 @@ plugin_emit_print (session *sess, char *word[], time_t server_time)
|
||||
int
|
||||
plugin_emit_dummy_print (session *sess, char *name)
|
||||
{
|
||||
char *word[32];
|
||||
char *word[PDIWORDS];
|
||||
int i;
|
||||
|
||||
word[0] = name;
|
||||
for (i = 1; i < 32; i++)
|
||||
for (i = 1; i < PDIWORDS; i++)
|
||||
word[i] = "\000";
|
||||
|
||||
return plugin_hook_run (sess, name, word, NULL, NULL, HOOK_PRINT);
|
||||
|
Loading…
Reference in New Issue
Block a user