Ticket #2266 (closed good practice: fixed)

Opened 2 years ago

Last modified 23 months ago

Logical error in gui/client/alias_add.php

Reported by: JCD Owned by: nuxwin
Priority: trivial Milestone: ispCP ω 1.0.7
Component: Frontend (GUI) Version: ispCP ω 1.0.4
Severity: Easy Keywords:
Cc:

Description

I discovered a logical error in gui/client/alias_add.php

The code starting at line 153:

if (isset($_POST['status']) && $_POST['status'] == 1) {
    $forward_prefix = clean_input($_POST['forward_prefix']);
    if($_POST['status'] == 1) {
        $check_en = 'checked="checked"';
        $check_dis = '';
        $forward = strtolower(clean_input($_POST['forward']));
        $tpl->assign(
                array(
                    'READONLY_FORWARD' => '',
                    'DISABLE_FORWARD' => '',
                    )
                );
    } else {
        $check_en = '';
        $check_dis = 'checked="checked"';
        $forward = '';
        $tpl->assign(
                array(
                    'READONLY_FORWARD' => ' readonly',
                    'DISABLE_FORWARD' => ' disabled="disabled"',
                    )
                );
    }
    $tpl->assign(
            array(
                'HTTP_YES' => ($forward_prefix === 'http://') ? 'selected="selected"' : '',
                'HTTPS_YES' => ($forward_prefix === 'https://') ? 'selected="selected"' : '',
                'FTP_YES' => ($forward_prefix === 'ftp://') ? 'selected="selected"' : ''
                )
            );
} else {
    $check_en = '';
    $check_dis = 'checked="checked"';
    $forward = '';
    $tpl->assign(
            array(
                'READONLY_FORWARD' => ' readonly',
                'DISABLE_FORWARD' => ' disabled="disabled"',
                )
            );
}

The else branch belonging to

if($_POST['status'] == 1) {

is never reached. The prior condition checks for $_POST['status'] == 1, so $_POST['status'] cannot have any other value if this condition is true. The if/else statement can be reduced to

if (isset($_POST['status']) && $_POST['status'] == 1) {
    $forward_prefix = clean_input($_POST['forward_prefix']);
    $check_en = 'checked="checked"';
    $check_dis = '';
    $forward = strtolower(clean_input($_POST['forward']));
    $tpl->assign(
             array(
                'READONLY_FORWARD' => '',
                'DISABLE_FORWARD' => '',
             )
         );
    $tpl->assign(
            array(
                'HTTP_YES' => ($forward_prefix === 'http://') ? 'selected="selected"' : '',
                'HTTPS_YES' => ($forward_prefix === 'https://') ? 'selected="selected"' : '',
                'FTP_YES' => ($forward_prefix === 'ftp://') ? 'selected="selected"' : ''
                )
            );
} else {
    $check_en = '';
    $check_dis = 'checked="checked"';
    $forward = '';
    $tpl->assign(
            array(
                'READONLY_FORWARD' => ' readonly',
                'DISABLE_FORWARD' => ' disabled="disabled"',
                )
            );
}

Correct me if I'm wrong. Regards

Change History

comment:1 Changed 2 years ago by nuxwin

  • Owner set to nuxwin
  • Status changed from new to assigned

comment:2 Changed 2 years ago by nuxwin

  • Milestone changed from Working to ispCP ω 1.0.6

comment:3 Changed 23 months ago by nuxwin

  • Status changed from assigned to closed
  • Resolution set to fixed

Fixed in r2713

Note: See TracTickets for help on using tickets.