タグ

ブックマーク / www.jpcert.or.jp (3)

  • INT06-C. 文字列トークンを整数に変換するには strtol() 系の関数を使う

    INT06-C. 文字列トークンを整数に変換するには strtol() 系の関数を使う 文字列トークンを整数に変換するには strtol 系関数を使うこと。これらの関数は他の方法よりも堅牢なエラー処理を提供する。 strtol()、strtoll()、strtoul() および strtoull() 関数は、null 終端バイト文字列の最初の部分を、long int、long long int、unsigned long int および unsigned long long int へそれぞれ変換する。 signed int、signed short、singed char など、より小さな符号付き型に変換するには、strtol() 関数を使い、結果の値をその型の範囲に照らし合わせてテストすること。 unsigned int、unsigned short、unsigned char などよ

    INT06-C. 文字列トークンを整数に変換するには strtol() 系の関数を使う
    kohagi
    kohagi 2014/01/22
    scanfやatoiではなくstrtolを使う
  • POS47-C. 非同期キャンセルが可能なスレッドを使用しない

    POS47-C. 非同期キャンセルが可能なスレッドを使用しない スレッドの処理において、pthread は、即座にキャンセルするか、または特定のキャンセルポイントまでキャンセルを遅らせるかを設定できる。しかし、ほとんどのスレッドは安全に即座に (非同期に) キャンセルできないため、非同期にキャンセルするは危険である。 IEEE 標準規格には次のように記述されている。 安全にキャンセルできる関数に限り、非同期キャンセルが可能なスレッドから呼び出すことができる。 非同期のキャンセルは、スレッドを強制終了させるときにシグナルをスレッドに渡す場合と同じ道をたどるため、「CON37-C. マルチスレッドプログラムで signal() を呼び出さない」(「SIG02-C. 標準的な機能を実装する際はシグナルの使用を避ける」に密接に関連する)と同様の問題をもたらす。POS44-C と SIG02-C で

    POS47-C. 非同期キャンセルが可能なスレッドを使用しない
    kohagi
    kohagi 2013/08/21
    PTHREAD_CANCEL_ASYNCHRONOUSは使ってはいけない
  • JPCERT コーディネーションセンター セキュアコーディング

    プログラム開発業務に携わる全ての方々に向けて、脆弱性のない、安全なソフトウエア開発のためのセミナー、コーディングのルールやそのマテリアル、書籍に関する情報を紹介しています。

    JPCERT コーディネーションセンター セキュアコーディング
  • 1