Project

General

Profile

Actions

Bug #9273

closed

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

Added by vo.x (Vit Ondruch) over 10 years ago. Updated about 10 years ago.

Status:
Closed
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

Updated by vo.x (Vit Ondruch) over 10 years ago

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

Actions #2

Updated by nobu (Nobuyoshi Nakada) over 10 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) over 10 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) over 10 years ago

Thanks for fixing this.

Updated by nagachika (Tomoyuki Chikanaga) over 10 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) about 10 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) about 10 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.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0