mirror of
https://github.com/hexchat/hexchat.git
synced 2024-11-12 22:22:43 +01:00
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>
|
#include <hexchat-plugin.h>
|
||||||
|
|
||||||
|
#define WORD_ARRAY_LEN 48
|
||||||
|
|
||||||
static char plugin_name[] = "Lua";
|
static char plugin_name[] = "Lua";
|
||||||
static char plugin_description[] = "Lua scripting interface";
|
static char plugin_description[] = "Lua scripting interface";
|
||||||
static char plugin_version[16] = "1.3";
|
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);
|
base = lua_gettop(L);
|
||||||
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
||||||
lua_newtable(L);
|
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_pushstring(L, word[i]);
|
||||||
lua_rawseti(L, -2, i);
|
lua_rawseti(L, -2, i);
|
||||||
}
|
}
|
||||||
lua_newtable(L);
|
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_pushstring(L, word_eol[i]);
|
||||||
lua_rawseti(L, -2, 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);
|
base = lua_gettop(L);
|
||||||
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
||||||
lua_newtable(L);
|
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_pushstring(L, word[i]);
|
||||||
lua_rawseti(L, -2, i);
|
lua_rawseti(L, -2, i);
|
||||||
}
|
}
|
||||||
lua_newtable(L);
|
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_pushstring(L, word_eol[i]);
|
||||||
lua_rawseti(L, -2, 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);
|
base = lua_gettop(L);
|
||||||
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
lua_rawgeti(L, LUA_REGISTRYINDEX, info->ref);
|
||||||
lua_newtable(L);
|
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_pushstring(L, word[i]);
|
||||||
lua_rawseti(L, -2, i);
|
lua_rawseti(L, -2, i);
|
||||||
}
|
}
|
||||||
lua_newtable(L);
|
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_pushstring(L, word_eol[i]);
|
||||||
lua_rawseti(L, -2, 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));
|
return sv_2mortal (newRV_noinc ((SV *) hash));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define WORD_ARRAY_LEN 48
|
||||||
|
|
||||||
static AV *
|
static AV *
|
||||||
array2av (char *array[])
|
array2av (char *array[])
|
||||||
{
|
{
|
||||||
@ -293,7 +295,7 @@ array2av (char *array[])
|
|||||||
|
|
||||||
for (
|
for (
|
||||||
count = 1;
|
count = 1;
|
||||||
count < 32 && array[count] != NULL && array[count][0] != 0;
|
count < WORD_ARRAY_LEN && array[count] != NULL && array[count][0] != 0;
|
||||||
count++
|
count++
|
||||||
) {
|
) {
|
||||||
temp = newSVpv (array[count], 0);
|
temp = newSVpv (array[count], 0);
|
||||||
|
@ -75,7 +75,7 @@
|
|||||||
#define DOMAINLEN 100
|
#define DOMAINLEN 100
|
||||||
#define NICKLEN 64 /* including the NULL, so 63 really */
|
#define NICKLEN 64 /* including the NULL, so 63 really */
|
||||||
#define CHANLEN 300
|
#define CHANLEN 300
|
||||||
#define PDIWORDS 32
|
#define PDIWORDS 48
|
||||||
#define USERNAMELEN 10
|
#define USERNAMELEN 10
|
||||||
#define HIDDEN_CHAR 8 /* invisible character for xtext */
|
#define HIDDEN_CHAR 8 /* invisible character for xtext */
|
||||||
|
|
||||||
|
@ -662,11 +662,11 @@ plugin_emit_print (session *sess, char *word[], time_t server_time)
|
|||||||
int
|
int
|
||||||
plugin_emit_dummy_print (session *sess, char *name)
|
plugin_emit_dummy_print (session *sess, char *name)
|
||||||
{
|
{
|
||||||
char *word[32];
|
char *word[PDIWORDS];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
word[0] = name;
|
word[0] = name;
|
||||||
for (i = 1; i < 32; i++)
|
for (i = 1; i < PDIWORDS; i++)
|
||||||
word[i] = "\000";
|
word[i] = "\000";
|
||||||
|
|
||||||
return plugin_hook_run (sess, name, word, NULL, NULL, HOOK_PRINT);
|
return plugin_hook_run (sess, name, word, NULL, NULL, HOOK_PRINT);
|
||||||
|
Loading…
Reference in New Issue
Block a user