@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/size-t-to-int-conversion-warning/#article>
    schema:about <https://comcomponent.com/knowledge/gcc-wconversion/>, <https://comcomponent.com/knowledge/clang-wshorten-64-to-32/>, <https://comcomponent.com/knowledge/msvc-c4267/> ;
    schema:mentions <https://comcomponent.com/knowledge/cve-2025-6021/>, <https://comcomponent.com/knowledge/xmlbuildqname/>, <https://comcomponent.com/knowledge/libxml2/>, <https://comcomponent.com/knowledge/integer-overflow/>, <https://comcomponent.com/knowledge/undefinedbehaviorsanitizer/> .

<https://comcomponent.com/knowledge/gcc-wconversion/> a skos:Concept ;
    skos:prefLabel "-Wconversion(GCC)"@ja ;
    skos:definition "値が変わりうる暗黙の型変換を警告するGCCのオプション。-Wallと-Wextraが有効にするオプションには含まれず、明示的なキャストは警告しない。"@ja .

<https://comcomponent.com/knowledge/clang-wshorten-64-to-32/> a skos:Concept ;
    skos:prefLabel "-Wshorten-64-to-32"@ja ;
    skos:definition "暗黙の変換で整数の精度が失われることを警告するClangのオプション。-Wconversionを指定した場合にも有効になる。"@ja ;
    skos:altLabel "-Wshorten-64-to-32(Clang)" .

<https://comcomponent.com/knowledge/msvc-c4267/> a skos:Concept ;
    skos:prefLabel "C4267"@ja ;
    skos:definition "size_tからそれより小さい型への変換を検出したときにMSVCが出すレベル3の警告。intへの変換では64ビットのプラットフォームでだけ出る。"@ja ;
    skos:altLabel "コンパイラの警告(レベル3) C4267"@ja .

<https://comcomponent.com/knowledge/xmlbuildqname/> a skos:Concept ;
    skos:prefLabel "xmlBuildQName"@ja ;
    skos:definition "接頭辞とローカル名からprefix:nameの形の名前(QName)を組み立てる、libxml2のAPIの関数。呼び出し側が渡したバッファに収まればそこへ書き、収まらなければ新しい領域を確保する。"@ja .

<https://comcomponent.com/knowledge/cve-2025-6021/> a skos:Concept ;
    skos:prefLabel "CVE-2025-6021"@ja ;
    skos:definition "2025年6月に公開されたlibxml2の脆弱性。xmlBuildQNameで接頭辞とローカル名から求めた必要なバイト数がintの上限を超えると容量の検査が働かず、呼び出し側のバッファの範囲外へ書き込む。libxml2 2.14.4と2.13.9で修正された。"@ja ;
    ks:requires <https://comcomponent.com/knowledge/xmlbuildqname/> .

<https://comcomponent.com/knowledge/libxml2/> a skos:Concept ;
    skos:prefLabel "libxml2"@ja ;
    skos:definition "GNOMEプロジェクトのために開発が始まった、Cで実装されたXMLのツールキット。XMLのパーサーとツリーを扱うAPIを提供する。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/xmlbuildqname/> .

<https://comcomponent.com/knowledge/integer-overflow/> a skos:Concept ;
    skos:prefLabel "整数オーバーフロー"@ja ;
    skos:definition "整数の演算結果が、その型で表せる範囲を超えること。言語と設定によって、例外・パニック・折り返しのいずれかになる。Adaでは、値が型の基本範囲に収まるかを確かめるOverflow_Checkに失敗すると、実行時にConstraint_Errorが送出される。"@ja ;
    skos:altLabel "Integer Overflow" ;
    skos:altLabel "integer overflow" ;
    skos:altLabel "算術オーバーフロー"@ja ;
    skos:altLabel "Overflow_Check" .

<https://comcomponent.com/knowledge/undefinedbehaviorsanitizer/> a skos:Concept ;
    skos:prefLabel "UndefinedBehaviorSanitizer"@ja ;
    skos:definition "符号付き整数のオーバーフローなどの未定義の動作を実行時に検出する、ClangとGCCの機能。Clangでは、暗黙の整数の変換で値が変わったことを報告する検査も指定できる。"@ja ;
    skos:altLabel "UBSan" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/xmlbuildqname/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/gcc-wconversion/> ;
    schema:description "修正前のlibxml2 2.14.3のxmlBuildQNameでstrlenの結果をintに入れる2行(tree.cの183行と184行)は、GCC 13.3.0に-Wconversionを足すと警告される。-Wallと-Wextraでは警告されない。libxml2 2.14.3全体では953件の警告が出て、うち341件が-Wconversionの警告だった。修正後の2.14.4では、この2行は警告されない。"@ja ;
    ks:evidence <https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/Warning-Options.html>, <https://gitlab.gnome.org/GNOME/libxml2/-/blob/v2.14.3/tree.c#L183-186> ;
    ks:verifiedAt "2026-11-14" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/xmlbuildqname/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/clang-wshorten-64-to-32/> ;
    schema:description "同じ2行は、clang 18.1.3に-Wshorten-64-to-32を足すと警告される。libxml2 2.14.3全体では251件の警告が出て、修正後の2.14.4ではこの2行の分の2件が減った。"@ja ;
    ks:evidence <https://clang.llvm.org/docs/DiagnosticsReference.html>, <https://gitlab.gnome.org/GNOME/libxml2/-/blob/v2.14.3/tree.c#L183-186> ;
    ks:verifiedAt "2026-11-14" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cve-2025-6021/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/xmlbuildqname/> ;
    schema:description "CVE-2025-6021は、修正前のxmlBuildQNameがstrlenの結果をintに入れ、その合計で容量を確かめていたことが原因だった。報告の値では、代入ではなく足し算でintの上限を超える。"@ja ;
    ks:evidence <https://gitlab.gnome.org/GNOME/libxml2/-/issues/926>, <https://gitlab.gnome.org/GNOME/libxml2/-/blob/v2.14.3/tree.c#L183-186> ;
    ks:verifiedAt "2026-11-14" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/libxml2/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/xmlbuildqname/> ;
    schema:description "xmlBuildQNameはlibxml2のtree.cにある関数。libxml2 2.14.3のCMakeの設定は-Wallと-Wextraなどを渡すが、-Wconversionと-Wshorten-64-to-32は入っていない。"@ja ;
    ks:evidence <https://gitlab.gnome.org/GNOME/libxml2/-/blob/v2.14.3/tree.c#L183-186>, <https://gitlab.gnome.org/GNOME/libxml2/-/blob/v2.14.3/CMakeLists.txt#L403-409> ;
    ks:verifiedAt "2026-11-14" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/integer-overflow/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/undefinedbehaviorsanitizer/> ;
    schema:description "足し算のオーバーフローは型の変換の警告では分からない。UndefinedBehaviorSanitizerのsigned-integer-overflowの検査は、名前の長さを2,147,483,637バイトにして動かしたときに10行目のオーバーフローを報告した。報告が出るのは、その値の入力で動かしたときだけ。"@ja ;
    ks:evidence <https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html> ;
    ks:verifiedAt "2026-11-14" ;
    ks:certainty "context-dependent" .
