From b4fcdc51e9df126faf5e9aabcbaa50bb33da0bd0 Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Sat, 13 Jul 2013 13:49:19 +0100 Subject: [PATCH 01/10] [ticket/11638] generate_text_for_display on viewtopic.php lines: 835-843 sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 4dd03202f1..6b789bbb99 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -828,26 +828,15 @@ if (!empty($topic_data['poll_start'])) $poll_total += $poll_option['poll_option_total']; } - if ($poll_info[0]['bbcode_bitfield']) - { - $poll_bbcode = new bbcode(); - } - else - { - $poll_bbcode = false; + $parse_bbcode_flags = OPTION_FLAG_SMILIES; + + if(empty($poll_info[0]['bbcode_bitfield'])){ + $parse_bbcode_flags |= OPTION_FLAG_BBCODE; } for ($i = 0, $size = sizeof($poll_info); $i < $size; $i++) { - $poll_info[$i]['poll_option_text'] = censor_text($poll_info[$i]['poll_option_text']); - - if ($poll_bbcode !== false) - { - $poll_bbcode->bbcode_second_pass($poll_info[$i]['poll_option_text'], $poll_info[$i]['bbcode_uid'], $poll_option['bbcode_bitfield']); - } - - $poll_info[$i]['poll_option_text'] = bbcode_nl2br($poll_info[$i]['poll_option_text']); - $poll_info[$i]['poll_option_text'] = smiley_text($poll_info[$i]['poll_option_text']); + $poll_info[$i]['poll_option_text'] = generate_text_for_display($poll_info[$i]['poll_option_text'], $poll_info[$i]['bbcode_uid'], $poll_option['bbcode_bitfield'], $parse_bbcode_flags, true); } $topic_data['poll_title'] = censor_text($topic_data['poll_title']); From 97054d81f82123f17cd3680326932a8fd021ffa2 Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Sat, 13 Jul 2013 13:50:44 +0100 Subject: [PATCH 02/10] [ticket/11638] generate_text_for_display on viewtopic.php lines: 846-854 sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 6b789bbb99..d295b91f43 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -839,17 +839,9 @@ if (!empty($topic_data['poll_start'])) $poll_info[$i]['poll_option_text'] = generate_text_for_display($poll_info[$i]['poll_option_text'], $poll_info[$i]['bbcode_uid'], $poll_option['bbcode_bitfield'], $parse_bbcode_flags, true); } - $topic_data['poll_title'] = censor_text($topic_data['poll_title']); - - if ($poll_bbcode !== false) - { - $poll_bbcode->bbcode_second_pass($topic_data['poll_title'], $poll_info[0]['bbcode_uid'], $poll_info[0]['bbcode_bitfield']); - } - - $topic_data['poll_title'] = bbcode_nl2br($topic_data['poll_title']); - $topic_data['poll_title'] = smiley_text($topic_data['poll_title']); - - unset($poll_bbcode); + $topic_data['poll_title'] = generate_text_for_display($topic_data['poll_title'], $poll_info[0]['bbcode_uid'], $poll_info[0]['bbcode_bitfield'], $parse_bbcode_flags, true); + + unset($parse_bbcode_flags); foreach ($poll_info as $poll_option) { From a58ccdabf30cad5b0373c266fc69368c65cee1a1 Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Sat, 13 Jul 2013 14:35:22 +0100 Subject: [PATCH 03/10] [ticket/11638] generate_text_for_display on viewtopic.php lines: 1395-1403 sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index d295b91f43..34586b1491 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1380,16 +1380,8 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) // End signature parsing, only if needed if ($user_cache[$poster_id]['sig'] && $row['enable_sig'] && empty($user_cache[$poster_id]['sig_parsed'])) { - $user_cache[$poster_id]['sig'] = censor_text($user_cache[$poster_id]['sig']); - - if ($user_cache[$poster_id]['sig_bbcode_bitfield']) - { - $bbcode->bbcode_second_pass($user_cache[$poster_id]['sig'], $user_cache[$poster_id]['sig_bbcode_uid'], $user_cache[$poster_id]['sig_bbcode_bitfield']); - } - - $user_cache[$poster_id]['sig'] = bbcode_nl2br($user_cache[$poster_id]['sig']); - $user_cache[$poster_id]['sig'] = smiley_text($user_cache[$poster_id]['sig']); - $user_cache[$poster_id]['sig_parsed'] = true; + $include_bbcode_parse = $user_cache[$poster_id]['sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0; + $user_cache[$poster_id]['sig'] = generate_text_for_display($user_cache[$poster_id]['sig'], $user_cache[$poster_id]['sig_bbcode_uid'], $user_cache[$poster_id]['sig_bbcode_bitfield'], $include_bbcode_parse | OPTION_FLAG_SMILIES, true); } // Parse the message and subject From 713a2ba573ab49d2add2522392b1f91ca3065dea Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Sat, 13 Jul 2013 14:35:50 +0100 Subject: [PATCH 04/10] [ticket/11638] generate_text_for_display on viewtopic.php lines: 1403-1417 sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 34586b1491..9274539ab4 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1385,16 +1385,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) } // Parse the message and subject - $message = censor_text($row['post_text']); - - // Second parse bbcode here - if ($row['bbcode_bitfield']) - { - $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']); - } - - $message = bbcode_nl2br($message); - $message = smiley_text($message); + $message = generate_text_for_display($message, $row['bbcode_uid'], $row['bbcode_bitfield'], ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES, true); if (!empty($attachments[$row['post_id']])) { From fc64e6997f9d54362a7fbe2f7a366fb8ba497deb Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Sat, 20 Jul 2013 16:24:31 +0100 Subject: [PATCH 05/10] [ticket/11638] Fixed typo in the variable name. sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 9274539ab4..d18478fbfa 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1385,7 +1385,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) } // Parse the message and subject - $message = generate_text_for_display($message, $row['bbcode_uid'], $row['bbcode_bitfield'], ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES, true); + $message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES, true); if (!empty($attachments[$row['post_id']])) { From 73414823048cac8c2963b2034ba13daaf60c3fee Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Sat, 20 Jul 2013 16:25:05 +0100 Subject: [PATCH 06/10] [ticket/11638] Fixed not following guidelines for brackets sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index d18478fbfa..de76d1186d 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -830,7 +830,8 @@ if (!empty($topic_data['poll_start'])) $parse_bbcode_flags = OPTION_FLAG_SMILIES; - if(empty($poll_info[0]['bbcode_bitfield'])){ + if(empty($poll_info[0]['bbcode_bitfield'])) + { $parse_bbcode_flags |= OPTION_FLAG_BBCODE; } From 4ed322b5b8642ec8d0a6faf23d9ea751e81dbf69 Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Wed, 24 Jul 2013 11:59:28 +0100 Subject: [PATCH 07/10] [ticket/11638] Updated: bitwise $parse_flags use optionset() sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index de76d1186d..303b9bb6da 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1381,8 +1381,9 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) // End signature parsing, only if needed if ($user_cache[$poster_id]['sig'] && $row['enable_sig'] && empty($user_cache[$poster_id]['sig_parsed'])) { - $include_bbcode_parse = $user_cache[$poster_id]['sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0; - $user_cache[$poster_id]['sig'] = generate_text_for_display($user_cache[$poster_id]['sig'], $user_cache[$poster_id]['sig_bbcode_uid'], $user_cache[$poster_id]['sig_bbcode_bitfield'], $include_bbcode_parse | OPTION_FLAG_SMILIES, true); + $parse_flags = phpbb_optionset(OPTION_FLAG_SMILIES, true, 0); + $parse_flags = phpbb_optionset(OPTION_FLAG_BBCODE, $user_cache[$poster_id]['sig_bbcode_bitfield'], $parse_flag); + $user_cache[$poster_id]['sig'] = generate_text_for_display($user_cache[$poster_id]['sig'], $user_cache[$poster_id]['sig_bbcode_uid'], $parse_flags, true); } // Parse the message and subject From 029015e1542e7719d4a35d350093f4dfb3a7313e Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Wed, 24 Jul 2013 12:31:14 +0100 Subject: [PATCH 08/10] [ticket/11638] Reverted to use the $parse tags way as the other ones sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 303b9bb6da..a0e7eb6a94 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1381,9 +1381,8 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) // End signature parsing, only if needed if ($user_cache[$poster_id]['sig'] && $row['enable_sig'] && empty($user_cache[$poster_id]['sig_parsed'])) { - $parse_flags = phpbb_optionset(OPTION_FLAG_SMILIES, true, 0); - $parse_flags = phpbb_optionset(OPTION_FLAG_BBCODE, $user_cache[$poster_id]['sig_bbcode_bitfield'], $parse_flag); - $user_cache[$poster_id]['sig'] = generate_text_for_display($user_cache[$poster_id]['sig'], $user_cache[$poster_id]['sig_bbcode_uid'], $parse_flags, true); + $parse_flags = ($user_cache[$poster_id]['sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES; + $user_cache[$poster_id]['sig'] = generate_text_for_display($user_cache[$poster_id]['sig'], $user_cache[$poster_id]['sig_bbcode_uid'], $user_cache[$poster_id]['sig_bbcode_bitfield'], $parse_flags, true); } // Parse the message and subject From 6c68348a71891219b039ae98a5a0af2fd52d3956 Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Wed, 24 Jul 2013 12:31:38 +0100 Subject: [PATCH 09/10] [ticket/11638] Use the $parse_flags like the other commits sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index a0e7eb6a94..151176fc6f 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1386,7 +1386,8 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) } // Parse the message and subject - $message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES, true); + $parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES; + $message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true); if (!empty($attachments[$row['post_id']])) { From 4cdccbd42b2f6ee54c6edb7f96ec3a0cac2ae8ea Mon Sep 17 00:00:00 2001 From: Bruno Ais Date: Wed, 24 Jul 2013 12:45:23 +0100 Subject: [PATCH 10/10] [ticket/11638] Removed the unneeded reset. sub-task of ticket PHPBB3-11635: find and fix all bypasses of generate_text_for_* PHPBB3-11638 --- phpBB/viewtopic.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 151176fc6f..64006fbe61 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -830,7 +830,7 @@ if (!empty($topic_data['poll_start'])) $parse_bbcode_flags = OPTION_FLAG_SMILIES; - if(empty($poll_info[0]['bbcode_bitfield'])) + if (empty($poll_info[0]['bbcode_bitfield'])) { $parse_bbcode_flags |= OPTION_FLAG_BBCODE; } @@ -841,8 +841,6 @@ if (!empty($topic_data['poll_start'])) } $topic_data['poll_title'] = generate_text_for_display($topic_data['poll_title'], $poll_info[0]['bbcode_uid'], $poll_info[0]['bbcode_bitfield'], $parse_bbcode_flags, true); - - unset($parse_bbcode_flags); foreach ($poll_info as $poll_option) {