Skip to content

G.CTF.03 循环或递归必须安全退出

【级别】 建议

【描述】

在应用程序中,一个重复提供服务的逻辑循环,应当包含相应的退出机制,并且将资源正确释放后安全退出。

循环必须安全退出,递归也必须安全结束。

【反例】

Rust
fn main() {
  let mut counter = 0;

  loop {
    counter += 1;
    // 不符合:循环无退出条件
  } 
}

【正例】

Rust
fn main() {
  let mut counter = 0;

  loop {
    counter += 1;
    // 符合:循环包含退出条件
    if should_exit(counter) { 
      break;
    }
  } 
}

fn should_exit(count: u32) -> bool { 
  count >= 5
}