From be90709b114b6f1cd84b70b58b989a3f46712da4 Mon Sep 17 00:00:00 2001 From: elijah Date: Tue, 6 Aug 2013 01:02:29 -0700 Subject: fix crash when fetched key is rejected (e.g. too short, etc), report errors in the request, prevent most crashes by catching exceptions. --- test/files/short_key_vindex_result | 7 +++++++ test/unit/hkp_test.rb | 13 ++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 test/files/short_key_vindex_result (limited to 'test') diff --git a/test/files/short_key_vindex_result b/test/files/short_key_vindex_result new file mode 100644 index 0000000..a410144 --- /dev/null +++ b/test/files/short_key_vindex_result @@ -0,0 +1,7 @@ +info:1:1 +pub:9A753A6B:17:1024:1252683790:: +uid:Tom%C3%A1s Touceda :1368645663:: +uid:Tomas Touceda :1361376077:: +uid:Tom%C3%A1s Touceda :1252683790:: +uid:Tom%C3%A1s Touceda :1270489372:: +uid:Tom%C3%A1s Touceda :1306498697:: \ No newline at end of file diff --git a/test/unit/hkp_test.rb b/test/unit/hkp_test.rb index 1b7b2c9..c211690 100644 --- a/test/unit/hkp_test.rb +++ b/test/unit/hkp_test.rb @@ -21,7 +21,7 @@ class HkpTest < MiniTest::Unit::TestCase def test_key_info_reject_keysize fetch_key_info :hkp_vindex_result, 'frog@leap.se' do |keys| - assert_equal 1, keys.length, 'should find one key' + assert_equal 1, keys.length, 'should find one key' # because short key gets ignored assert_equal '00440025', keys.first.keyid end end @@ -67,6 +67,17 @@ class HkpTest < MiniTest::Unit::TestCase end end + def test_fetch_key_too_short + uid = 'chiiph@leap.se' + key_id = '9A753A6B' + + stub_sks_vindex_reponse(uid, :body => file_content(:short_key_vindex_result)) + test_em_errback "Nickserver::HKP::FetchKey.new.get '#{uid}'" do |error| + assert_equal 500, error + end + end + + protected # -- cgit v1.2.3