From 1ae1dcc25c225aa8c0b38bea9f70b43ff2441ed7 Mon Sep 17 00:00:00 2001 From: MIYAGI Hikaru Date: Sun, 20 Aug 2017 00:45:38 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=BF=E3=82=B0=E5=85=A5=E5=8A=9B=E3=81=AE?= =?UTF-8?q?=E5=86=85=E3=80=81=E3=82=BF=E3=82=B0=E5=88=86=E8=A7=A3=E9=83=A8?= =?UTF-8?q?=E5=88=86=E3=81=A0=E3=81=91=E3=81=98=E3=82=83=E3=81=AA=E3=81=8F?= =?UTF-8?q?=E3=81=A6=E6=A8=99=E6=BA=96=E5=85=A5=E5=8A=9B=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E3=81=AB=E3=82=82=E3=82=B5=E3=82=A4=E3=82=BA=E3=83=81=E3=82=A7?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=82=92=E5=85=A5=E3=82=8C=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit これを入れないと、例えば改行でない同じ文字が無限に入力された時、レコードを分解できずサイズチェックが働かない。 サイズチェックをタグ分解部分とわざわざ分けているのは空白からのみなる行を無視する動作があるため。 --- nls/ja_JP.UTF-8/2.mainerror | 1 + nls/ja_JP.eucJP/2.mainerror | 1 + parse-tags.c | 6 +++++- version.h | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nls/ja_JP.UTF-8/2.mainerror b/nls/ja_JP.UTF-8/2.mainerror index b5d3f7b..5e3f127 100644 --- a/nls/ja_JP.UTF-8/2.mainerror +++ b/nls/ja_JP.UTF-8/2.mainerror @@ -8,3 +8,4 @@ $set 2 8 ファイル指定がない 9 ファイル指定が多い 10 保存出来るタグの長さが上限を超えた(%uMiBまで) +11 編集入力が長過ぎる。変なコマンドを挟んでいませんか? diff --git a/nls/ja_JP.eucJP/2.mainerror b/nls/ja_JP.eucJP/2.mainerror index 2500e2f..133b97d 100644 --- a/nls/ja_JP.eucJP/2.mainerror +++ b/nls/ja_JP.eucJP/2.mainerror @@ -8,3 +8,4 @@ $set 2 8 ե꤬ʤ 9 ե꤬¿ 10 ¸륿ŤĶ(%uMiBޤ) +11 ԽϤĹ᤮롣Ѥʥޥɤ򶴤Ǥޤ? diff --git a/parse-tags.c b/parse-tags.c index e056655..6c36d85 100644 --- a/parse-tags.c +++ b/parse-tags.c @@ -80,8 +80,12 @@ static void *toutf8(void *fdu8_) { } } size_t readlen, remain, total; - remain = 0; + remain = 0; total = 0; while ((readlen = fread(&lbuf[remain], 1, buflen - remain, stdin)) != 0) { + total += readlen; + if (total > TAG_LENGTH_LIMIT__INPUT) { + mainerror(catgets(catd, 2, 11, "編集入力が長過ぎる。変なコマンドを挟んでいませんか?")); + } if (strnlen(&lbuf[remain], readlen) != readlen) { err_bin(); } diff --git a/version.h b/version.h index 6548489..c4f7ff9 100644 --- a/version.h +++ b/version.h @@ -1,4 +1,4 @@ -#define OPUSCOMMENT_VERSION "1.0.1" +#define OPUSCOMMENT_VERSION "1.0.2" #define OPUSCOMMENT_REVISION_YEAR (2017 - 1900) #define OPUSCOMMENT_REVISION_MONTH (8 - 1)