私のテストプログラムは正常に動作します。私はクライアントとサーバーを作成し、それらをお互いに実行することができます。私はKRB5_CONFIG環境変数を設定し、テストのためにローカル設定を使用することができます。Oracle GSSとリンクして何らかの理由で動作が異なる(Solaris)
プロダクションソフトウェアに何らかの理由でコードを挿入すると失敗します。 main()関数をgss_import_name()を呼び出してハードコードされた名前で呼び出すだけでも、 "設定ファイルを開けません"というメッセージが表示されます。
私がトラスを実行すると、多くのオラクルが進化しています。さまざまなOracleトレースファイルを多数開こうとします。また、私が指定したファイルの代わりに、開こうとします。
/krb5/krb.conf
Oracleが誤ったgssを提供しているかのように、または巨大で複雑なビルド・システムでは別のオプションを与えているかのようです。私は-L/usr/lib/sparcv9に注意しますが、これは私が定期的にCで作業して以来、長すぎます。そのディレクトリ内のlibgss.so.1は、/ usr/lib内のlibgss.so.1より大きいですが、そのオプションを私のテストプログラムのlinkコマンドに入れても、それを壊すことはありません。
助けが必要ですか?
おかげ - リチャード
プログラムを 'dtrace -n 'として実行すると、syscall :: open *:/ copyinstr(arg0)== \"/krb5/krb.conf \ "/ {ustack();}" -c 'それは、間違った設定ファイルを開く人のためのcodepath/stacktraceを与えるでしょう。残念ながら、あなたの問題は複雑に聞こえ、おそらくビルド/セットアップに関連しているので、これは潜在的な出発点の1つに過ぎません。私たちはstackoverflowチャットが必要です;-) –
私はチャットの仕方を工夫しなければなりません。 コードは静的にgssにリンクされています。 libc.so.1'__open + 0x4 libc.so.1'_endopen + 0xa8 libc.so.1'fopen + 0x1cに program'profile_update_file_data + 0x1f8 program'profile_open_file + 0x528 program'profile_init + 0x60 program'os_init_paths + 0x20の program'krb5_os_init_context + 0x20の program'init_common + 0x10c program'krb5_gss_import_name + 0x18の program' main + 0x34 program'_start + 0x17c –
Oracleには独自のgss_api実装が含まれているようです。 Oracleライブラリーが役立つ前に-lgssを置いていますが、Oracleにとって何ができるのだろうかと思います。オラクル社では、ztから始まる実装名も持っています。 –