Uploaded image for project: 'phpBB3'
  1. phpBB3
  2. PHPBB3-11424

Quick-Mod Tools race condition results in NO_MODE

    Details

    • Type: Bug
    • Status: Unverified Fix
    • Priority: Trivial
    • Resolution: Fixed
    • Affects Version/s: 3.0.11
    • Fix Version/s: 3.1.4-RC1
    • Labels:
      None
    • Environment:
      PHP 5.4

      Description

      Steps to reproduce this behavior:

      1. Moderator Alice views a topic.
      2. Alice elects from "Quick-mod tools" the "Move topic" options.
      3. Alice clicks "Submit".
      4. In the meanwhile moderator Bob has successfully deleted the topic.
      5. For Alice /includes/mcp/mcp_main.php is running check_ids() which doesn't find the topic (any IDs) anymore, hence the function just returns FALSE.
      6. The code enters switch ($mode) and since there is no mode, Alice gets a NO_MODE error message.

      However, this results in an unexpected error although we (the code) know(s) better.

      To cure this I did the following in that file:
      Find

      trigger_error('NO_MODE', E_USER_ERROR);

      Before, add:

      if( $quickmod ) {
      	switch( $action ) {
      		case 'lock':
      		case 'unlock':
      		case 'make_announce':
      		case 'make_sticky':
      		case 'make_global':
      		case 'make_normal':
      		case 'make_onindex':
      		case 'move':
      		case 'fork':
      		case 'delete_topic':
      			trigger_error( 'TOPIC_NOT_EXIST' );  // no E_USER_ERROR
      		break;
       
      		case 'lock_post':
      		case 'unlock_post':
      		case 'delete_post':
      			trigger_error( 'POST_NOT_EXIST' );  // no E_USER_ERROR
      		break;
      	}
      }

      This way moderator Alice does not have to encounter an error which looks like something of the board broke.

        Activity

        Hide
        nicofuma nicofuma added a comment -
        Show
        nicofuma nicofuma added a comment - previous PR: https://github.com/phpbb/phpbb3/pull/1344
        Hide
        AmigoJack AmigoJack added a comment -

        Why is no fix considered for a 3.0 maintenance release?

        Show
        AmigoJack AmigoJack added a comment - Why is no fix considered for a 3.0 maintenance release?

          People

          • Assignee:
            nickvergessen Joas Schilling
            Reporter:
            AmigoJack AmigoJack
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development