phpBB Digests Bug Log
As bugs are reported I will post them here. This bug log is effective with Version 1.0.16.
Each bug will be classified as follows:
- Critical - This bug needs to be fixed immediately. The modification will fail or there is a serious security issue that needs to be addressed
- Serious - This bug fixes a major deficiency and should be applied as soon as possible
- Minor - Fixing this is not essential but fixing it may resolve certain issues or reduce questions
- Trivial - Not fixing it should cause no impact at all, but can be fixed if interested
If you discover a new bug, feel free to send it to me. (Please put phpBB in the subject line to avoid the spam filter.)
| Bug Found in Version | Severity | Date | Issue and Fix | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
phpBB 3 VersionThe bug log for phpBB3 Digests is contained in my support forum. I recommend subscribing to it as a newsfeed (RSS 2.0, RSS 1.0, Atom). |
|||||||||||
phpBB 2 VersionAny new bugs for phpBB2 Digests will be posted in my support forum. I recommend subscribing to it as a newsfeed (RSS 2.0, RSS 1.0, Atom). |
|||||||||||
| 1.0.18 | Minor | 4/4/2008 | Thanks to John Cox for reporting a solution to this persistent but annoying bug. If you see unexpected exclamation points in your feed, it is a result of improper encoding of the email. In /includes/digest_emailer.php, line 201 replace the line: $this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $board_config['board_email'] . "\n") . "Return-Path: " . $board_config['board_email'] . "\nMessage-ID: <" . md5(uniqid(time())) . "@" . $board_config['server_name'] . ">\nContent-transfer-encoding: 8bit\nDate: " . date('r', time()) . "\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\nX-MimeOLE: Produced By phpBB2\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : '');
with: $this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $board_config['board_email'] . "\n") . "Return-Path: " . $board_config['board_email'] . "\nMessage-ID: <" . md5(uniqid(time())) . "@" . $board_config['server_name'] . ">\nContent-transfer-encoding: base64\nDate: " . date('r', time()) . "\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\nX-MimeOLE: Produced By phpBB2\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : '');
$this->msg = rtrim(chunk_split(base64_encode($this->msg)));
|
||||||||
| 1.0.17 | Minor | 3/22/2008 | In the Administrator Control Panel, Digest Configuration, the version information will appear incorrect near the bottom of the page. This is because I have moved the domain which hosts the current version number to phpbbservices.com. To fix change lines 63 and 67 and replace phpbb.potomactavern.org with phpbbservices.com. This bug effects versions 1.0.17 and up. In addition it appears my redirect for versioning information (what you would see in the Administrator Control Panel) won't work. To fix this change admin/admin_digests_config.php, Line 63 to: if ($fsock = @fsockopen('phpbbservices.com', 80, $errno, $errstr, 10))
|
||||||||
| 1.0.18 | Trivial | 10/30/2007 | Line 501 in digests.php should read:
The htmlspecialchars() function, which is in the line, adds no additional protection from SQL injection because the intval() function handles it first. In addition the order was incorrect. substr() should have been applied to $key first, then the intval() should be applied. It worked correctly for me, but should not have. Note: on 11/2/2007 the archive was repacked with all corrections to date. |
||||||||
| 1.0.18 | Serious | 10/2/2007 | If all your forums are restricted so that no registered user can see any forums unless you they have been granted group or special permissions to the forum, then users who subscribe to a digest who have no forum permissions (and others who would receive digests at this hour) will not receive a digest since some bad SQL will be generated like this and cause the cron to fail:
Fix. Replace line 269 of mail_digests.php from: $forum_list = implode(',',$queried_forums);
to:if (count($queried_forums) > 0)Then change line 567 (was line 561) from:
post_time > ' . $code . ' AND f.forum_id IN (' . $forum_list . ')
to:post_time > ' . $code . ' ' . $forum_list . ' |
||||||||
| 1.0.18 | Trivial | 10/2/2007 | Line 566 of mail_digests should be: message_die(GENERAL_ERROR, 'Unable to execute retrieve message summary for user', '', __LINE__, __FILE__, $sql2);
|
||||||||
| 1.0.18 | Minor | 9/16/2007 | Apparently depending on how PHP is compiled it may be possible in the Administrator Control Panel to trigger an error. The error will be similar to:
If you notice this problem, it can be fixed as shown below. This bug effects versions 1.0.17 and 1.0.18. Change line 41 in /includes/digest_functions.php to:
|
||||||||
| 1.0.18 | Critical | 9/4/2007 | Line 501 in digests.php should be as follows to avoid a potential SQL injection vulnerability: Line 99 in digest_tables.php should be:
Lacking the closing ' this phpbb_mod_digest_settings will probably not be successfully created. The same problem exists in digest_upgrade_db.php if you are upgrading. Line 115 should be:
Thanks to the phpBB Mod team for discovering these critical bugs. The archive has been repacked to correct these errors, so if you are downloading after 9/4/2007 they have been fixed. |
||||||||
| 1.0.17 | Minor | 6/20/2007 | My eagle eyed tester Sylvain Bourdon discovered a test case I never considered. If you have to approve a user through the ACP or if you flip a user in the ACP from active to inactive (or visa versa) then: - When the user goes from inactive to active, a digest subscription should be created if the Digest ACP is configured this way. - When the user goes from active to inactive, the digest subscription should be removed. - When the user is active but you are changing something else in the ACP, their digest subscription should be unaffected. Also, in fixing this problem I realized that I also had to filter out inactive users from the selection list of users who can receive digests in the ACP. These are minor bugs but if it bothers you, here is how you can fix it.
Line 65 should be:
Line 71 should be:
I repacked the archive to correct these mistakes as well as others that have emerged since the 1.0.17 release. |
||||||||
| 1.0.17 | Minor | 6/3/2007 | Line 849 of mail_digests.php is:
|
||||||||
| 1.0.17 | Trivial | 5/26/2007 | Discovered by Sylvain Bourdon. This is only a problem if a user receives a private message in the digest and they turn off the option to show the text of the private message. In this case the header will show "Message Excerpt" when it should say "Subject".
The 1.0.17 archive is repacked with this correction. |
||||||||
| 1.0.17 | Minor | 5/25/2007 | Discovered by Sylvain Bourdon.
to: if (validate_field_not_blank (mail_digests_path) == false)The 1.0.17 archive is repacked with this correction. |
||||||||
| 1.0.16 | Minor | 2/1/2007 | A user on phpBB.com reports this bug: "I believe I have found another bug in the "Fancy HTML". If there has been a limit put on the length of any post to be in the email (i.e. 150chars) then the following code is executed (I think )
Note, this is the fix that will show up in a subsequent version. The added code is in bold: if ($bbcode_uid != '')
{
$post_text = ($board_config['allow_bbcode']) ? bbencode_second_pass($post_text, $bbcode_uid) : preg_replace("/\:$bbcode_uid/si", '', $post_text);
if (strlen($row2['post_text']) <= $post_text)
{
if (strstr($post_text,'<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center">') != FALSE)
{
$post_text = $post_text . '</td></tr></table>';
}
}
} |
||||||||
| 1.0.16 | Minor | 1/27/2007 | Here's another tiny bug by Sylvain Bourdoun. Previously the ancillary text in the email digest was in the default board language. If your board though supports multiple languages, this fix will ensure the user gets the digest in the language in their phpBB profile. Change this SQL around line 92 to the following: $sql = "SELECT s.user_id, u.username, u.user_email, u.user_lastvisit, u.user_level, u.user_timezone, u.user_sig_bbcode_uid, while ($row = $db->sql_fetchrow($result)) Add:
Around line 579, this line should be changed to:
|
||||||||
| 1.0.16 | Minor | 1/28/2007 | This bug would only manifest itself in the unlikely event you have the same topic names in two subsequent categories. In the SQL statement around line 338 change c.cat_title to c.cat_id. Add this after Line 355:
Line 369 becomes:
Finally, after this line near line 415:
add:
|
||||||||