Skip to content

Commit c90e8d8

Browse files
Merge pull request #899 from Muuhh-CTJ/jp-translation-conversion
Japanese translation of conversion
2 parents 369b2ac + ce1a980 commit c90e8d8

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed

docs/labs/conversion.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ info =
77
{
88
absent: "unsigned",
99
text: "The type defined for queue_count should exactly match the return type of get_queue.",
10+
text_ja: "queue_count の型定義は get_queue の戻り値の型と正確に一致している必要があります。",
1011
},
1112
{
1213
present: String.raw`unsigned\s+queue_count`,
1314
text: "The declared return type of get_queue is `unsigned int`; you should match it exactly instead of using a synonym like `unsigned`.",
15+
text_ja: "get_queue のの戻り値の型宣言は `unsigned int` です。`unsigned` のようなシノニム(同義語)ではなく、これに正確に一致させましょう。",
1416
},
1517
],
1618
expected: [

docs/labs/ja_conversion.html

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<!DOCTYPE html>
2+
<!-- saved from url=(0043)https://best.openssf.org/labs/template.html -->
3+
<html lang="ja"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
5+
<meta name="viewport" content="width=device-width, initial-scale=1">
6+
<link rel="stylesheet" href="https://best.openssf.org/assets/css/style.css">
7+
<link rel="stylesheet" href="checker.css">
8+
<script src="checker.js"></script>
9+
<script src="conversion.js"></script>
10+
<link rel="license" href="https://creativecommons.org/licenses/by/4.0/">
11+
12+
<!-- See create_labs.md for how to create your own lab! -->
13+
14+
</head>
15+
<body>
16+
<!-- For GitHub Pages formatting: -->
17+
<div class="container-lg px-3 my-5 markdown-body">
18+
<h1>ラボ演習 incorrect conversion</h1>
19+
<p>
20+
これはセキュアなソフトウェア開発に関するラボ演習です。
21+
ラボの詳細については、<a href="ja_introduction.html" target="_blank">概要</a>をご覧ください。
22+
23+
</p><p>
24+
</p><h2>ゴール</h2>
25+
<p>
26+
<b>予期せぬ型変換が起こらないように、以下のコードを修正しましょう。</b>
27+
28+
</p><p>
29+
</p><h2>背景</h2>
30+
<p>この演習では、予期せぬ型変換(または予期せぬ型キャストとも呼ばれる)を特定し修正します。</p>
31+
<p>以下の例では C プログラムでキューに格納されたメッセージを処理します。メッセージは <tt>get_queue</tt> という関数をコールすることで取得します。<tt>get_queue</tt> 関数にはメッセージを格納できる配列を一つの引数として参照渡しし、関数はこの配列に書き込まれたメッセージの数を戻り値として返します。その後取得したメッセージに対して <tt>process_message</tt> を繰り返し呼び出すことで処理します。</p>
32+
<p>残念ながら <tt>queue_count</tt> の型と <tt>get_queue</tt> の戻り値の型が一致していないため、メッセージの数を誤って処理してしまう可能性があります。処理回数が少なすぎる場合は情報が失われてしまいます。処理回数が多すぎる場合、 <tt>messages</tt> 配列の未初期化領域のデータを取り扱うことになりエラーを引き起こす恐れがあります。または配列境界を越えた読み込みによってセグメンテーションフォルトを引き起こす可能性があります。</p>
33+
34+
<p></p><h2>タスクの詳細</h2>
35+
<p></p>
36+
<p>予期せぬ型変換、または <tt>get_queue</tt> の戻り値が予期せず切り詰められることがないように以下のコードを修正してください。
37+
必要に応じて、「ヒント」ボタンと「諦める」ボタンを使用してください。
38+
</p>
39+
40+
<p></p>
41+
<h2>演習 (<span id="grade"></span>)</h2>
42+
<p></p>
43+
44+
<form id="lab">
45+
<pre><code>
46+
/* get_queue 関数のシグネチャ */
47+
unsigned int get_queue(message** messages);
48+
49+
/* メッセージ処理部分... */
50+
<input id="attempt0" type="text" size="60" spellcheck="false" value="int queue_count = 0;" style="background-color: yellow;">
51+
message* messages = malloc(sizeof(message) * MAX_MESSAGE_COUNT);
52+
queue_count = get_queue(&messages);
53+
54+
/* 個々のメッセージを順番に処理 */
55+
for (unsigned int i = 0; i < queue_count; i++) {
56+
process_message(messages[i]);
57+
}
58+
</code></pre>
59+
<button type="button" class="hintButton" title="現状へのヒント">ヒント</button>
60+
<button type="button" class="resetButton" title="初期状態にリセット(現状は失われます)">リセット</button>
61+
<button type="button" class="giveUpButton" title="諦めて答えを見る">諦める</button>
62+
<br><br>
63+
<p>
64+
<i>このラボは Keith Grant によって開発されました。</i>
65+
<br><br>
66+
</p><p id="correctStamp" class="small">
67+
<textarea id="debugData" class="displayNone" rows="20" cols="65" readonly=""></textarea>
68+
</p></form>
69+
</div><!-- End GitHub pages formatting -->
70+
71+
72+
</body></html>

0 commit comments

Comments
 (0)