-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Package: less
Version: 408-2
Severity: normal

Hi,

I reported from a user who noticed less always crashed when he used
less as PAGER of man.

After my quick looking, I noticed -Rm option of less caused this crash.

Usually man calls less like this (I'm using LANG=ja_JP.UTF-8):
- ----
zcat < /usr/share/man/ja/man8/apt-get.8.gz| 
/usr/bin/zsoelim|/usr/lib/man-db/manconv -f UTF-8:EUC-JP -t UTF-8|tbl|nroff 
-mandoc -Tutf8 | less -ix8RmPm
- ----

In this case, around line #183 of ja/apt-get.8 hits something.

- ----
Program received signal SIGSEGV, Segmentation fault.
pr_expand (proto=0x0, maxwidth=78) at prompt.c:486
486             if (*proto == '\0')
(gdb) bt
#0  pr_expand (proto=0x0, maxwidth=78) at prompt.c:486
#1  0x0000000000411548 in pr_string () at prompt.c:570
#2  0x000000000040736c in commands () at command.c:653
#3  0x0000000000402146 in main (argc=1, argv=0x7fff6e69d8a8) at main.c:286
- ----

'less -ix8Pm' or other pagers (lv or more) didn't go a crash.

I attached a sample file to this report for your test.
I believe you can reproducible this bug by:
- ----
LANG=ja_JP.UTF-8 less -Rm sample.txt
- ----

Thanks,
- --- 
Kenshi Muto
[EMAIL PROTECTED]

- --- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages less depends on:
ii  debianutils               2.25.1         Miscellaneous utilities specific t
ii  libc6                     2.6.1-5        GNU C Library: Shared libraries
ii  libncurses5               5.6+20071006-3 Shared libraries for terminal hand

less recommends no packages.

- --- no debconf information
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8+ <http://mailcrypt.sourceforge.net/>

iEYEARECAAYFAkcUuBgACgkQQKW+7XLQPLHjkgCZAROF3UA4FBrc6JRvWuU/OvrH
FF0AmwfBF/oYacznuJHVbK53D/Cdugdw
=s2nh
-----END PGP SIGNATURE-----
APT-GET(8)                                                          APT-GET(8)



NNAAMMEE
       apt-get - APT package handling utility -- 
コマンドラインインターフェー
       ス

SSYYNNOOPPSSIISS
       aapptt--ggeett [--hhvvss] [--oo==_c_o_n_f_i_g 
_s_t_r_i_n_g] [--cc==_f_i_l_e] {[update] | [upgrade] |
               [dselect-upgrade] | [install _p_k_g...] | [remove 
_p_k_g...] |
               [source _p_k_g...] | [build-dep _p_k_g...] | [check] | 
[clean] |
               [autoclean]}

説説明明
       aapptt--ggeett は、 
パッケージを操作するコマンドラインツールで、 APT 
ライブラ
       
リを用いる他のツールのユーザ側「バックエンド」といえるものです。
 「フロ
       ントエンド」インターフェースには、dselect(8), aptitude, 
synaptic,
       gnome-apt, wajig などがあります。

       --hh オプションや ----hheellpp オプションを除き、 
以下に挙げるコマンドが必要で
       す。

       update
           updateは、 
取得元からパッケージインデックスファイルの再同期を行うの
           に使用します。 
利用可能なパッケージのインデックスは、
           _/_e_t_c_/_a_p_t_/_s_o_u_r_c_e_s_._l_i_s_t 
に記述した場所から取得します。 例えば Debian
           アーカイブを利用する際、 このコマンドが 
_P_a_c_k_a_g_e_s_._g_z ファイルを検索
           することで、 
新規または更新されたパッケージの情報が利用可能となりま
           す。 update は、upgrade や dist-upgrade 
を行う前に常に実行してくだ
           さい。 
前もってパッケージファイルのサイズを知ることができないため、
           全体の進捗メータは正しく表示されません。

       upgrade
           upgrade は、 
現在システムにインストールされている全パッケージの最新
           バージョンを、 
_/_e_t_c_/_a_p_t_/_s_o_u_r_c_e_s_._l_i_s_t 
に列挙した取得元からインストー
           ルするのに使用します。 
現在インストール中のパッケージに新しいバージ
           ョンがあれば更新しますが、 
いかなる時も現在インストール中のパッケー
           ジの削除は行いません。 対象のパッケージが、 
他のパッケージのインス
           トール状態を変更せずに更新できない場合は、 
現在のバージョンのままと
           なります。 最初に update を実行しておき、 
aapptt--ggeett にパッケージの新
           しいバージョンがあることを 
知らせる必要があります。

       dselect-upgrade
           dselect-upgrade は、 伝統的な Debian GNU/Linux 
パッケージ管理フロン
           トエンドの ddsseelleecctt(8) 
と共に使用されます。 dselect-upgrade は、
           ddsseelleecctt(8) 
で作られた利用可能パッケージの Status フィールドの変更を
           追跡し、 
その状態を反映させるのに必要なアクションを実行します。
 (例
           
えば、古いパッケージの削除や新しいパッケージのインストールなど)

       dist-upgrade
           dist-upgrade は、 upgrade の機能に加え、 
新バージョンのパッケージに
           対する依存関係の変更を知的に操作します。 
aapptt--ggeett は「洗練された」競
           合解決システムを持ち、 
必要とあらば比較的重要でないパッケージを犠牲
           にして、 最重要パッケージの更新を試みます。 
_/_e_t_c_/_a_p_t_/_s_o_u_r_c_e_s_._l_i_s_t
           ファイルには、 
必要なパッケージファイルを検索する場所のリストが含ま
           れています。 
特定のパッケージ向けに、一般的な設定を上書きする機構に
           ついては、 aapptt__pprreeffeerreenncceess(5) 
をご覧ください。

       install
           install の後には、 インストールするパッケージを 1 
つ以上指定します
           。 
指定するパッケージは、完全なファイル名ではなくパッケージ名です。
           (例えば Debian GNU/Linux システムでは、 libc6_1.9.6-2.deb 
ではなく
           libc6 を引数として与えます) 
インストールするよう指定したすべてのパ
           ッケージに対し、 
検索・インストールを行います。
           _/_e_t_c_/_a_p_t_/_s_o_u_r_c_e_s_._l_i_s_t 
ファイルを、 要求するパッケージの場所を特定す
           るのに使用します。 パッケージ名の後ろに 
(空白を含まず) ハイフンが追
           加されている場合、 
そのパッケージがインストールされていれば削除しま
           す。 
同様に、インストールするパッケージを明示するのにプラス記号も使
           用できます。 この記号は apt-get 
の競合解決システムの判断に利用され
           るかもしれません。

           
パッケージにイコール記号とバージョンを続けることで、 
選択したバージ
           
ョンのパッケージをインストールすることができます。 
つまり、指定のバ
           
ージョンのパッケージをインストールするように選択する、
 ということで
           す。 
別の方法としては、ディストリビューションを特定するのに、
 パッ
           ケージ名に続けて、 
スラッシュとディストリビューションのバージョンや
           アーカイブ名 (stable, testing, unstable) 
を記述できます。

           
バージョン選択機構はダウングレード時にも使用できるため、
 注意して使
           用しなければなりません。

           最後に、aapptt__pprreeffeerreenncceess(5) 
機構により、 特定のパッケージに対するイ
           ンストールポリシーを作成できます。

           構文に ’.’, ’?’, ’*’ 
を含み、パッケージ名がマッチしなかった場合、
           POSIX 正規表現であると見なし、 
データベース内の全パッケージ名に対し
           て適用します。 
マッチしたパッケージすべてがインストール(もしくは削
           除)されます。 ’lo.*’ のような文字列は、 
’how-lo’ や ’lowest’ にマッ
           チすることに注意してください。 
そうしたくなければ、’^’ や ’$’ を付
           けるか、 
もっと詳しい正規表現を指定してください。

       remove
           remove は、 
パッケージが削除されることを除き、install と同様です。
           プラス記号がパッケージ名に 
(間に空白を含まずに) 付加されると、 識別
           
されたパッケージを、削除ではなくインストールします。

       source
           source は、 ソースパッケージを取得するのに 
aapptt--ggeett します。 APT は
           
どのソースパッケージを取得するか決定するよう、 
利用可能なパッケージ
           を検討します。 
その後、最新の利用可能なソースパッケージを見つけ、
           カレントディレクトリへダウンロードします。 
バイナリパッケージとは別
           に ssoouurrcceess..lliisstt(5) ファイルの deb-src 
行から、ソースパッケージを追
           跡します。 これは、インストールした 
(またはインストールできる) パッ
           ケージと、 
取得元を変えることができることを示しています。 --compile
           オプションが指定された場合、dpkg-buildpackage 
を用いて バイナリ
           .deb ファイルへコンパイルを行います。 
--download-only の場合はソー
           スパッケージを展開しません。

           パッケージと同様に、 
ソース名の後ろにイコールと取得したいバージョン
           を置くと、 
指定したバージョンのソースを取得できます。
           APT::Get::Only-Source 
オプションが暗黙のうちに有効になっているため
           、 
ソースパッケージ名とバージョンに厳密に一致させています。

           tar ball 
はカレントディレクトリにのみダウンロードされ、 
カレントデ
           ィレクトリに展開されることに注意してください。

       build-dep
           build-dep は、 
ソースパッケージの構築依存関係を満たすように、 パッ
           ケージのインストール・削除を行います。

       check
           check は、 
パッケージキャッシュの更新や壊れた依存関係をチェックする
           診断ツールです。

       clean
           clean は、 
取得したパッケージのローカルリポジトリを掃除します。
           
_/_v_a_r_/_c_a_c_h_e_/_a_p_t_/_a_r_c_h_i_v_e_s_/ と 
_/_v_a_r_/_c_a_c_h_e_/_a_p_t_/_a_r_c_h_i_v_e_s_/_p_a_r_t_i_a_l_/
 からロ
           ックファイル以外すべて削除します。 APT が 
ddsseelleecctt(8) から呼ばれると
           きには、 自動的に clean が実行されます。 
dselectを使用しない場合は
           、ディスクスペースを解放するため、時々 apt-get 
clean を実行したくな
           るでしょう。

       autoclean
           clean と同様に、 autoclean 
は取得したパッケージのローカルリポジトリ
           を掃除します。 
違いは、もうダウンロードされることがないパッケージフ
           ァイルや、 
ほとんど不要なパッケージファイルのみを削除することです。
           
このため、長い期間、キャッシュが管理できずに肥大化することなく、
 維
           持することができます。 設定オプション 
APT::Clean-Installed に off
           をセットしていれば、 
インストール済のパッケージファイルが削除される
           のを防げます。

オオププシショョンン
       この説明で示したオプションは、 
すべて設定ファイルを使用して設定できます
       。 設定ファイルに書いた真偽値をとるオプションは 
--ff--,----nnoo--ff, --ff==nnoo など
       のようにして上書きできます。

       --dd, ----ddoowwnnllooaadd--oonnllyy
           ダウンロードのみ - 
パッケージファイルの取得のみを行い、 展開・イン
           ストールを行いません。 設定項目 - 
APT::Get::Download-Only

       --ff, ----ffiixx--bbrrookkeenn
           修復 - 
依存関係が壊れたシステムの修正を試みます。 
このオプションを
           install や remove と一緒に使うときは、 
パッケージを指定しなくてもか
           まいません。 
どのパッケージを指定しても、完全に問題を解決します
           。APT 自体は、 
システムに存在する壊れたパッケージ依存関係を許すこと
           ができないので、 初めて APT 
を実行する場合、このオプションが必要に
           なることがあります。 
システムの依存関係構造にかなり問題がある場合は
           、 手動で修正するよう要求することもあります。 
(通常は、問題のあるパ
           ッケージを取り除くのに ddsseelleecctt(8) や 
ddppkkgg ----rreemmoovvee を使用します) こ
           のオプションを --mm 
オプションと同時に使用すると、 エラーになる状況が
           あるかもしれません。 設定項目 - APT::Get::Fix-Broken

       --mm, ----iiggnnoorree--mmiissssiinngg, 
----ffiixx--mmiissssiinngg
           欠落パッケージの無視 - 
パッケージが取得できなかったり、 (パッケージ
           の破損で) 
取得した後の整合性チェックを通らなかった場合、 
そのパッケ
           ージの処理を保留し最後まで処理を続けます。 
このオプションを --ff オプ
           ションと同時に使用すると、 
エラーになる状況があるかもしれません。
           
パッケージをインストールするよう選択している場合 
(特にコマンドライ
           ンでの操作時) や、 
ダウンロードできなかった場合に、なにも表示せず保
           留することになります。 設定項目 - 
APT::Get::Fix-Missing

       ----nnoo--ddoowwnnllooaadd
           パッケージのダウンロードを無効にします。 
これはすでにダウンロードし
           た .deb に対してのみ APT を行う場合に、 
----iiggnnoorree--mmiissssiinngg と併せて使
           うのがよいでしょう。 設定項目 - APT::Get::Download

       --qq, ----qquuiieett
           静粛 - 進捗表示を省略し、 
ログをとるのに便利な出力を行います。 最大
           2 つまで q を重ねることでより静粛にできます。 
また、--qq==## のように静
KENSHI
1
2
3
4
5
6
7
8
9
0
           2 つまで q を重ねることでより静粛にできます。 
また、--qq==## のように静
           粛レベルを指定して、 
設定ファイルを上書きすることもできます。 静粛
           レベル 2 は --yy 
を含んでいることに注意してください。 APT が意図しな
           い決定を行うかもしれないので -d, --print-uris, -s 
のような 操作を行
           わないオプションをつけずに -qq 
を使用するべきではありません。 設定
           項目 - quiet

       --ss, ----ssiimmuullaattee, 
----jjuusstt--pprriinntt, ----ddrryy--rruunn, 
----rreeccoonn, ----nnoo--aacctt
           動作なし - 
なにが起こるのかのシミュレーションを行い、 
実際にはシス
           テムの変更を行いません。 設定項目 - 
APT::Get::Simulate

           シミュレートの結果、dpkg 
の動作を表す一連の行のそれぞれに、 設定
           (Conf)、削除 (Remv)、展開 (Inst) を表示します。 
角カッコは壊れたパ
           ッケージを表し、(まれに) 
空の角カッコは大した問題ではないことを表し
           ます。

       --yy, ----yyeess, ----aassssuummee--yyeess
           プロンプトへの自動承諾 - 
すべてのプロンプトに自動的に "yes" と答え
           、非対話的に実行します。 
保留したパッケージの状態を変更したり、 必
           
須パッケージを削除するような不適切な状況の場合、 
apt-get は処理を中
           断します。 設定項目 - APT::Get::Assume-Yes

       --uu, ----sshhooww--uuppggrraaddeedd
           更新パッケージ表示 - 
更新される全パッケージを一覧表示します。 設定
           項目 - APT::Get::Show-Upgraded

       --VV, ----vveerrbboossee--vveerrssiioonnss
           
更新・インストールするパッケージのヴァージョンを、 
すべて表示します
           。 設定項目 - APT::Get::Show-Versions

       --bb, ----ccoommppiillee, ----bbuuiilldd
           
ソースパッケージをダウンロード後、コンパイルします。 
設定項目 -
           APT::Get::Compile

       ----iiggnnoorree--hhoolldd
           保留パッケージの無視 - 
パッケージの保留指示を無視して aapptt--ggeett を行
           います。 dist-upgrade と共に、 
大量のパッケージを保留の解除をするの
           に使用すると便利です。 設定項目 - APT::Ignore-Hold

       ----nnoo--uuppggrraaddee
           パッケージ更新なし - install 
と同時に使用すると、no-upgrade は、 指
           
定したパッケージがすでにインストールしてある場合に更新を行いません
           。 設定項目 - APT::Get::Upgrade

       ----ffoorrccee--yyeess
           強制承諾 - APT 
が何か損傷を与えかねない動作をしようとした場合でも、
           
確認の入力なしで実行してしまう危険なオプションです。 
よほどの状況で
           なければ、使用しない方がいいでしょう。 force-yes 
は、あなたのシステ
           ムを破壊しかねません! 設定項目 - APT::Get::force-yes

       ----pprriinntt--uurriiss
           インストールするファイルを取得する代わりに、 
その URI を表示します
           。 URI 
には、パス、対象ファイル名、ファイルサイズ、 
予測される md5
           ハッシュが含まれています。 
出力したファイル名が、 常にリモートサイ
           トのファイル名と一致するわけではない、 
ということに注意してくださ
           い! これは source コマンド、 update 
コマンドでも動作します。 update
           で使用したときには、 MD5 
やファイルサイズを含みません。 このとき、
           
圧縮ファイルの展開はユーザの責任において行ってください。
 設定項目 -
           APT::Get::Print-URIs

       ----ppuurrggee
           
削除する際、「削除」ではなく「完全削除」を行います。 
「完全削除」を
           行うと指示したパッケージ名の後には、 
アスタリスク ("*") が付きます
           。 設定項目 - APT::Get::Purge

       ----rreeiinnssttaallll
           すでに最新版がインストールされていても、 
パッケージを再インストール
           します。 設定項目 - APT::Get::ReInstall.

       ----lliisstt--cclleeaannuupp
           この機能はデフォルトで ON になっています。 OFF 
にするには
           --no-list-cleanup としてください。 ON の場合、 
aapptt--ggeett は古くなった
           ファイルを確実に消去するため、 自動的に 
_/_v_a_r_/_l_i_b_/_a_p_t_/_l_i_s_t_s の中身を
           管理します。 これを OFF 
にするのは、取得元リストを頻繁に変更する時
           ぐらいでしょう。 設定項目 - APT::Get::List-Cleanup.

       --tt, ----ttaarrggeett--rreelleeaassee, 
----ddeeffaauulltt--rreelleeaassee
           このオプションは、 
ポリシーエンジンへのデフォルト入力を制御します。
           これは、指定されたリリース文字列を使用し、 
デフォルト pin を優先度
           990 で作成することです。 
優先ファイルはこの設定を上書きします。 要
           するにこのオプションで、 
どの配布パッケージを取得するかを簡単に管理
           します。 一般的な例としては、 --tt 
’’22..11**’’ や --tt uunnssttaabbllee でしょう。
           設定項目 - APT::Default-Release 
aapptt__pprreeffeerreenncceess(5) のマニュアルペー
           ジもご覧ください。

       ----ttrriivviiaall--oonnllyy
           「重要でない」操作のみを行います。 
これは論理的に ----aassssuummee--yyeess の仲
           間と見なせます。 ----aassssuummee--yyeess 
は質問にすべて yes と答えますが、
           ----ttrriivviiaall--oonnllyy はすべて no 
と答えます。 設定項目 -
           APT::Get::Trivial-Only

       ----nnoo--rreemmoovvee
           パッケージが削除される状況になったとき、 
プロンプトを表示せず中断し
           ます。 設定項目 - APT::Get::Remove

       ----oonnllyy--ssoouurrccee
           source コマンドと build-dep 
コマンドでのみ意味があります。 指定され
           
たソース名がバイナリテーブルにマップされないようにします。
 これは、
           このオプションを指定すると、 
バイナリパッケージ名を受け付けて対応す
           るソースパッケージを探すのではなく、 
引数にソースパッケージ名しか受
           け付けなくなる、ということです。 設定項目 - 
APT::Get::Only-Source

       ----ddiiffff--oonnllyy, ----ttaarr--oonnllyy
           ソースアーカイブの diff ファイルや tar 
ファイルのダウンロードのみを
           行います。 設定項目 - APT::Get::Diff-Only, 
APT::Get::Tar-Only

       ----aarrcchh--oonnllyy
           構築依存関係の解決を、 
アーキテクチャに依存したもののみ行います。
           設定項目 - APT::Get::Arch-Only

       ----aallllooww--uunnaauutthheennttiiccaatteedd
           パッケージを確認できない場合に無視し、 
それについて質問しません。
           pbuilder のようなツールで便利です。 設定項目 -
           APT::Get::AllowUnauthenticated

       --hh, ----hheellpp
           使い方の短い要約を表示します。

       --vv, ----vveerrssiioonn
           プログラムのバージョンを表示します。

       --cc, ----ccoonnffiigg--ffiillee
           設定ファイル。 
使用する設定ファイルを指定します。 この設定ファイル
           
が読めない場合はデフォルトの設定ファイルを読み込みます。
 文法につい
           ては aapptt..ccoonnff(5) を参照してください。

       --oo, ----ooppttiioonn
           
設定オプションのセット。任意の設定オプションをセットします。
 文法は
           --oo FFoooo::::BBaarr==bbaarr となります。

フファァイイルル
       _/_e_t_c_/_a_p_t_/_s_o_u_r_c_e_s_._l_i_s_t
           パッケージの取得元。 設定項目 - Dir::Etc::SourceList

       _/_e_t_c_/_a_p_t_/_a_p_t_._c_o_n_f
           APT 設定ファイル。 設定項目 - Dir::Etc::Main

       _/_e_t_c_/_a_p_t_/_a_p_t_._c_o_n_f_._d_/
           APT 設定ファイルの断片。 設定項目 - Dir::Etc::Parts

       _/_e_t_c_/_a_p_t_/_p_r_e_f_e_r_e_n_c_e_s
           バージョン優先ファイル。 ここに "pin" 
の設定を行います。 つまり、別
           
々の取得元や異なるディストリビューションのバージョンの、
 どこからパ
           ッケージを取得するかを設定します。 設定項目 - 
Dir::Etc::Preferences

       _/_v_a_r_/_c_a_c_h_e_/_a_p_t_/_a_r_c_h_i_v_e_s_/
           取得済みパッケージファイル格納エリア。 
設定項目 -
           Dir::Cache::Archives

       
_/_v_a_r_/_c_a_c_h_e_/_a_p_t_/_a_r_c_h_i_v_e_s_/_p_a_r_t_i_a_l_/
           取得中パッケージファイル格納エリア。 設定項目 -
           Dir::Cache::Archives (必然的に不完全)

       _/_v_a_r_/_l_i_b_/_a_p_t_/_l_i_s_t_s_/
           ssoouurrcceess..lliisstt(5) 
のパッケージリソース特有の状態情報格納エリア。 設定
           項目 - Dir::State::Lists

       
_/_v_a_r_/_l_i_b_/_a_p_t_/_l_i_s_t_s_/_p_a_r_t_i_a_l_/
           取得中の状態情報格納エリア。 設定項目 - 
Dir::State::Lists (必然的に
           不完全)

関関連連項項目目
       aapptt--ccaacchhee(8), aapptt--ccddrroomm(8), 
ddppkkgg(8), ddsseelleecctt(8), 
ssoouurrcceess..lliisstt(5),
       aapptt..ccoonnff(5), aapptt--ccoonnffiigg(8), 
/usr/share/doc/apt/ の APT ユーザーズガイ
       ド, aapptt__pprreeffeerreenncceess(5), APT Howto

診診断断メメッッセセーージジ
       aapptt--ggeett は正常終了時に 0 を返します。 
エラー時には十進の 100 を返します
       。

ババググ
       _A_P_T バグページ[1]を ご覧ください。 APT 
のバグを報告する場合は、
       
_/_u_s_r_/_s_h_a_r_e_/_d_o_c_/_d_e_b_i_a_n_/_b_u_g_-_r_e_p_o_r_t_i_n_g_._t_x_t
 や rreeppoorrttbbuugg(1) コマンドをご覧
       ください。

訳訳者者
       倉澤 望 <[EMAIL PROTECTED]> (2003-2006), Debian JP Documentation ML
       <[EMAIL PROTECTED]>

AAUUTTHHOORRSS
       JJaassoonn GGuunntthhoorrppee
           Author.

       AAPPTT tteeaamm
           Author.

RREEFFEERREENNCCEESS
        1. APT バグページ
           http://bugs.debian.org/src:apt



Linux                          29 February 2004                     APT-GET(8)

Reply via email to