# HG changeset patch # User Paul Aurich # Date 1228977503 0 # Node ID 08b65145276a449152c4a8faa15644d8a0572308 # Parent d8452c0bec7b1304191bf8f98671e790b62d4418 Fix off-by-ones in the perl loader where av_len is used. Fixes #7687. committer: John Bailey diff -r d8452c0bec7b -r 08b65145276a libpurple/plugins/perl/common/Account.xs --- a/libpurple/plugins/perl/common/Account.xs Thu Dec 11 06:32:05 2008 +0000 +++ b/libpurple/plugins/perl/common/Account.xs Thu Dec 11 06:38:23 2008 +0000 @@ -105,7 +105,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(status_types)); + t_len = av_len((AV *)SvRV(status_types)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(status_types), i, 0))); @@ -207,7 +207,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(list)); + t_len = av_len((AV *)SvRV(list)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(list), i, 0))); @@ -236,13 +236,13 @@ int i, t_len; PPCODE: t_GL1 = NULL; - t_len = av_len((AV *)SvRV(A)); + t_len = av_len((AV *)SvRV(A)) + 1; for (i = 0; i < t_len; i++) t_GL1 = g_list_append(t_GL1, SvPVutf8_nolen(*av_fetch((AV *)SvRV(A), i, 0))); t_GL2 = NULL; - t_len = av_len((AV *)SvRV(B)); + t_len = av_len((AV *)SvRV(B)) + 1; for (i = 0; i < t_len; i++) t_GL2 = g_list_append(t_GL2, SvPVutf8_nolen(*av_fetch((AV *)SvRV(B), i, 0))); diff -r d8452c0bec7b -r 08b65145276a libpurple/plugins/perl/common/AccountOpts.xs --- a/libpurple/plugins/perl/common/AccountOpts.xs Thu Dec 11 06:32:05 2008 +0000 +++ b/libpurple/plugins/perl/common/AccountOpts.xs Thu Dec 11 06:38:23 2008 +0000 @@ -42,7 +42,7 @@ int i, t_len; CODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(values)); + t_len = av_len((AV *)SvRV(values)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(values), i, 0))); @@ -130,7 +130,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(values)); + t_len = av_len((AV *)SvRV(values)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(values), i, 0))); diff -r d8452c0bec7b -r 08b65145276a libpurple/plugins/perl/common/Conversation.xs --- a/libpurple/plugins/perl/common/Conversation.xs Thu Dec 11 06:32:05 2008 +0000 +++ b/libpurple/plugins/perl/common/Conversation.xs Thu Dec 11 06:38:23 2008 +0000 @@ -334,7 +334,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(users)); + t_len = av_len((AV *)SvRV(users)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(users), i, 0))); @@ -372,7 +372,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(ignored)); + t_len = av_len((AV *)SvRV(ignored)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(ignored), i, 0))); @@ -429,19 +429,19 @@ int i, t_len; PPCODE: t_GL_users = NULL; - t_len = av_len((AV *)SvRV(users)); + t_len = av_len((AV *)SvRV(users)) + 1; for (i = 0; i < t_len; i++) t_GL_users = g_list_append(t_GL_users, SvPVutf8_nolen(*av_fetch((AV *)SvRV(users), i, 0))); t_GL_flags = NULL; - t_len = av_len((AV *)SvRV(flags)); + t_len = av_len((AV *)SvRV(flags)) + 1; for (i = 0; i < t_len; i++) t_GL_flags = g_list_append(t_GL_flags, SvPVutf8_nolen(*av_fetch((AV *)SvRV(flags), i, 0))); t_GL_extra_msgs = NULL; - t_len = av_len((AV *)SvRV(extra_msgs)); + t_len = av_len((AV *)SvRV(extra_msgs)) + 1; for (i = 0; i < t_len; i++) t_GL_extra_msgs = g_list_append(t_GL_extra_msgs, SvPVutf8_nolen(*av_fetch((AV *)SvRV(extra_msgs), i, 0))); diff -r d8452c0bec7b -r 08b65145276a libpurple/plugins/perl/common/Prefs.xs --- a/libpurple/plugins/perl/common/Prefs.xs Thu Dec 11 06:32:05 2008 +0000 +++ b/libpurple/plugins/perl/common/Prefs.xs Thu Dec 11 06:38:23 2008 +0000 @@ -51,7 +51,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(value)); + t_len = av_len((AV *)SvRV(value)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(value), i, 0))); @@ -73,7 +73,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(value)); + t_len = av_len((AV *)SvRV(value)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(value), i, 0))); @@ -202,7 +202,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(value)); + t_len = av_len((AV *)SvRV(value)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(value), i, 0))); @@ -224,7 +224,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(value)); + t_len = av_len((AV *)SvRV(value)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(value), i, 0))); diff -r d8452c0bec7b -r 08b65145276a libpurple/plugins/perl/common/Roomlist.xs --- a/libpurple/plugins/perl/common/Roomlist.xs Thu Dec 11 06:32:05 2008 +0000 +++ b/libpurple/plugins/perl/common/Roomlist.xs Thu Dec 11 06:38:23 2008 +0000 @@ -78,7 +78,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(fields)); + t_len = av_len((AV *)SvRV(fields)) + 1; for (i = 0; i < t_len; i++) t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(fields), i, 0))); diff -r d8452c0bec7b -r 08b65145276a libpurple/plugins/perl/common/Status.xs --- a/libpurple/plugins/perl/common/Status.xs Thu Dec 11 06:32:05 2008 +0000 +++ b/libpurple/plugins/perl/common/Status.xs Thu Dec 11 06:38:23 2008 +0000 @@ -83,7 +83,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(source_list)); + t_len = av_len((AV *)SvRV(source_list)) + 1; for (i = 0; i < t_len; i++) { t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(source_list), i, 0))); @@ -379,7 +379,7 @@ int i, t_len; CODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(status_types)); + t_len = av_len((AV *)SvRV(status_types)) + 1; for (i = 0; i < t_len; i++) { t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(status_types), i, 0))); diff -r d8452c0bec7b -r 08b65145276a pidgin/plugins/perl/common/GtkIMHtml.xs --- a/pidgin/plugins/perl/common/GtkIMHtml.xs Thu Dec 11 06:32:05 2008 +0000 +++ b/pidgin/plugins/perl/common/GtkIMHtml.xs Thu Dec 11 06:38:23 2008 +0000 @@ -171,7 +171,7 @@ int i, t_len; PPCODE: t_GL = NULL; - t_len = av_len((AV *)SvRV(unused)); + t_len = av_len((AV *)SvRV(unused)) + 1; for (i = 0; i < t_len; i++) { STRLEN t_sl;