pidgin: 0538a687: Fix off-by-ones in the perl loader where...

rekkanoryo at pidgin.im rekkanoryo at pidgin.im
Thu Dec 11 03:46:05 EST 2008


-----------------------------------------------------------------
Revision: 0538a6873b4fbb3c72cc0b6fc4d8b690d467686d
Ancestor: 7674ddc7cd8cc44708f19acbd479542bdb18391a
Author: paul at aurich.com
Date: 2008-12-11T06:38:23
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/0538a6873b4fbb3c72cc0b6fc4d8b690d467686d

Modified files:
        libpurple/plugins/perl/common/Account.xs
        libpurple/plugins/perl/common/AccountOpts.xs
        libpurple/plugins/perl/common/Conversation.xs
        libpurple/plugins/perl/common/Prefs.xs
        libpurple/plugins/perl/common/Roomlist.xs
        libpurple/plugins/perl/common/Status.xs
        pidgin/plugins/perl/common/GtkIMHtml.xs

ChangeLog: 

Fix off-by-ones in the perl loader where av_len is used.  Fixes #7687.

-------------- next part --------------
============================================================
--- libpurple/plugins/perl/common/Account.xs	62c3a316cfef95add5e967a262b17442c358a6c7
+++ libpurple/plugins/perl/common/Account.xs	3caae5ee8b8b68b6a59bd6759cc0db88f87716d9
@@ -105,7 +105,7 @@ PPCODE:
     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 @@ PPCODE:
     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 @@ PPCODE:
     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)));
============================================================
--- libpurple/plugins/perl/common/AccountOpts.xs	6a4b8903ca9c3add4dfc081b981e2d496fc56628
+++ libpurple/plugins/perl/common/AccountOpts.xs	f8f8960467922af88584635ffcfe5341a04b4150
@@ -42,7 +42,7 @@ CODE:
 	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 @@ PPCODE:
 	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)));
============================================================
--- libpurple/plugins/perl/common/Conversation.xs	e53bdbc2ad517b46d9942020555ea4ed4956e2c2
+++ libpurple/plugins/perl/common/Conversation.xs	96b8be4ea6755d28fd659b0211d9c4857e63654b
@@ -334,7 +334,7 @@ PPCODE:
 	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 @@ PPCODE:
 	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 @@ PPCODE:
 	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)));
============================================================
--- libpurple/plugins/perl/common/Prefs.xs	5ae1c1b4ffac0aa2ab74aa9a1998c9dcd11994de
+++ libpurple/plugins/perl/common/Prefs.xs	c504ea24158dc6906116973d8da6814c2dff38b8
@@ -51,7 +51,7 @@ PPCODE:
 	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 @@ PPCODE:
 	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 @@ PPCODE:
 	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 @@ PPCODE:
 	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)));
============================================================
--- libpurple/plugins/perl/common/Roomlist.xs	0ce6902b9f37bec30e91f1c4e2583c48ae6a1f83
+++ libpurple/plugins/perl/common/Roomlist.xs	e269722b0d7ec13ce6cf111abf49cbe9b451776f
@@ -78,7 +78,7 @@ PPCODE:
 	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)));
============================================================
--- libpurple/plugins/perl/common/Status.xs	ffbac7144d6270ec093cbc909842ee28e4476ed2
+++ libpurple/plugins/perl/common/Status.xs	4a490e76dadfa22604d6b67bd31f0a298d292487
@@ -83,7 +83,7 @@ PPCODE:
 	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 @@ CODE:
 	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)));
============================================================
--- pidgin/plugins/perl/common/GtkIMHtml.xs	0170b53066002d13bc1d2938e5a82587ac58faf9
+++ pidgin/plugins/perl/common/GtkIMHtml.xs	1c33ca15f34fbd533485baf9d0d5da9942a0deab
@@ -171,7 +171,7 @@ PPCODE:
 	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;


More information about the Commits mailing list