Project

General

Profile

Bug #9273

parse_resolv_conf fails with unicode comments in /etc/resolvconf.c

Added by vo.x (Vit Ondruch) almost 6 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby -v: ruby 2.1.0dev (2013-12-20 trunk 44303) [x86_64-linux]
[ruby-core:59239]

Description

=begin
This is content of my resolve.conf:

$ cat /etc/resolv.conf
# Generated by NetworkManager
domain redhat.com
search redhat.com
nameserver 10.38.5.26
nameserver 10.35.255.14
nameserver 213.46.172.36
# POZNÁMKA: překladač adres z libc nemůže podporovat více než 3 jmenné servery.
# Jmenné servery uvedené v následujícím seznamu nelze rozpoznat.
nameserver 213.46.172.37
nameserver 192.168.0.1

As you can see, NetworkManager inserts there some localized comment. Later, when I run the Ruby's test suite with LANG=C (this is default for Fedora build system), I observer error:

1) Error:
TestGemRemoteFetcher#test_download_to_cache:
ArgumentError: invalid byte sequence in US-ASCII
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:926:in sub!'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:926:in
block (2 levels) in parse_resolv_conf'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:925:in each'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:925:in
block in parse_resolv_conf'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:924:in open'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:924:in
parse_resolv_conf'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:956:in default_config_hash'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:977:in
block in lazy_initialize'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:970:in synchronize'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:970:in
lazy_initialize'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:358:in block in lazy_initialize'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:356:in
synchronize'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:356:in lazy_initialize'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:516:in
fetch_resource'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:510:in each_resource'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:491:in
getresource'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/remote_fetcher.rb:89:in api_endpoint'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/source.rb:42:in
api_uri'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/source.rb:126:in fetch_spec'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/spec_fetcher.rb:171:in
block in spec_for_dependency'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/spec_fetcher.rb:169:in each'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/spec_fetcher.rb:169:in
spec_for_dependency'
/builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/remote_fetcher.rb:106:in download_to_cache'
/builddir/build/BUILD/ruby-2.1.0-r44303/test/rubygems/test_gem_remote_fetcher.rb:400:in
test_download_to_cache'

The attached patch ignores such error and should be sufficient to fix this issue IMO. Not sure if I should not contact NM developers, but anybody else might insert there some localized strings as well, so Ruby should be probably more robust in this case.
=end


Files

0001-Ignore-encoding-issues.patch (1.08 KB) 0001-Ignore-encoding-issues.patch vo.x (Vit Ondruch), 12/21/2013 06:02 AM
0001-Ignore-encoding-issues.patch (971 Bytes) 0001-Ignore-encoding-issues.patch vo.x (Vit Ondruch), 12/21/2013 06:28 AM

Associated revisions

Revision 1ffbe07e
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

resolv.rb: no encodings

  • lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
  • lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 44312
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

resolv.rb: no encodings

  • lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
  • lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

Revision 44312
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

resolv.rb: no encodings

  • lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
  • lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

Revision 44312
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

resolv.rb: no encodings

  • lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
  • lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

Revision 44312
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

resolv.rb: no encodings

  • lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
  • lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

Revision 44312
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

resolv.rb: no encodings

  • lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
  • lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

Revision 44312
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

resolv.rb: no encodings

  • lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
  • lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

Revision 1ef0a76c
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

test_dns.rb: no server access

  • test/resolv/test_dns.rb (test_invalid_byte_comment): get rid of actual server access. [Bug #9273]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 44318
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

test_dns.rb: no server access

  • test/resolv/test_dns.rb (test_invalid_byte_comment): get rid of actual server access. [Bug #9273]

Revision 44318
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

test_dns.rb: no server access

  • test/resolv/test_dns.rb (test_invalid_byte_comment): get rid of actual server access. [Bug #9273]

Revision 44318
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

test_dns.rb: no server access

  • test/resolv/test_dns.rb (test_invalid_byte_comment): get rid of actual server access. [Bug #9273]

Revision 44318
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

test_dns.rb: no server access

  • test/resolv/test_dns.rb (test_invalid_byte_comment): get rid of actual server access. [Bug #9273]

Revision 44318
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

test_dns.rb: no server access

  • test/resolv/test_dns.rb (test_invalid_byte_comment): get rid of actual server access. [Bug #9273]

Revision 44318
Added by nobu (Nobuyoshi Nakada) almost 6 years ago

test_dns.rb: no server access

  • test/resolv/test_dns.rb (test_invalid_byte_comment): get rid of actual server access. [Bug #9273]

Revision 2f4529e7
Added by nagachika (Tomoyuki Chikanaga) almost 6 years ago

merge revision(s) 44312,44318,44321: [Backport #9273]

    * lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not
      consider encodings in hosts file.  [ruby-core:59239] [Bug #9273]

    * lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@44324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 888372e5
Added by usa (Usaku NAKAMURA) almost 6 years ago

merge revision(s) 44312,44318,44321: [Backport #9273]

    * lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not
      consider encodings in hosts file.  [ruby-core:59239] [Bug #9273]

    * lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@44739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 14a34023
Added by naruse (Yui NARUSE) over 5 years ago

merge revision(s) 44312,44318: [Backport #9273]

    * lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not
      consider encodings in hosts file.  [ruby-core:59239] [Bug #9273]

    * lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

History

Updated by vo.x (Vit Ondruch) almost 6 years ago

Reading the Ruby 2.1.0 changes, there is probably more elegant way to achieve the same result ;) See updated patch.

#2

Updated by nobu (Nobuyoshi Nakada) almost 6 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r44312.
Vit, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


resolv.rb: no encodings

  • lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
  • lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

Updated by nobu (Nobuyoshi Nakada) almost 6 years ago

  • Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN to 1.9.3: REQUIRED, 2.0.0: REQUIRED, 2.1: REQUIRED

Updated by vo.x (Vit Ondruch) almost 6 years ago

Thanks for fixing this.

Updated by nagachika (Tomoyuki Chikanaga) almost 6 years ago

  • Backport changed from 1.9.3: REQUIRED, 2.0.0: REQUIRED, 2.1: REQUIRED to 1.9.3: REQUIRED, 2.0.0: DONE, 2.1: REQUIRED

r44312, r44318 and r44321 were backported to ruby_2_0_0 at r44324.

Updated by usa (Usaku NAKAMURA) almost 6 years ago

  • Backport changed from 1.9.3: REQUIRED, 2.0.0: DONE, 2.1: REQUIRED to 1.9.3: DONE, 2.0.0: DONE, 2.1: REQUIRED

backported into ruby_1_9_3 at r44739.

Updated by naruse (Yui NARUSE) over 5 years ago

  • Backport changed from 1.9.3: DONE, 2.0.0: DONE, 2.1: REQUIRED to 1.9.3: DONE, 2.0.0: DONE, 2.1: DONE

r45075.

Also available in: Atom PDF