From 8b5942801d0d947ffccb2e5ec250e6863db0d5d5 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 8 Aug 2006 10:29:02 +0000 Subject: [PATCH] * lib/resolv.rb (Resolv::DNS::Message::MessageDecoder::get_string): affected by str[0] returns 1 char string. [ruby-dev:29223] * lib/resolv.rb (Resolv::DNS::Message::MessageDecoder::get_labels): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ README | 2 +- lib/resolv.rb | 5 +++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 236bfe05dc..99333abef3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Aug 8 19:26:10 2006 Yukihiro Matsumoto + + * lib/resolv.rb (Resolv::DNS::Message::MessageDecoder::get_string): + affected by str[0] returns 1 char string. [ruby-dev:29223] + + * lib/resolv.rb (Resolv::DNS::Message::MessageDecoder::get_labels): + ditto. + Tue Aug 8 12:28:43 2006 Nobuyoshi Nakada * parse.y (arg): allow newlines before ternary colon. [ruby-dev:29189] diff --git a/README b/README index bde22dff78..d4580076b0 100644 --- a/README +++ b/README @@ -62,7 +62,7 @@ This is what you need to do to compile and install Ruby: 2. Run ./configure, which will generate config.h and Makefile. - 3. Edit defines.h if you need. Probably this step will not need. + 3. Edit defines.h if you need. Usually this step will not be needed. 4. Remove comment mark(#) before the module names from ext/Setup (or add module names if not present), if you want to link modules diff --git a/lib/resolv.rb b/lib/resolv.rb index 300901fdf0..deceeaba30 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -1330,6 +1330,7 @@ class Resolv def get_unpack(template) len = 0 template.each_byte {|byte| + byte = "%c" % byte case byte when ?c, ?C len += 1 @@ -1348,7 +1349,7 @@ class Resolv end def get_string - len = @data[@index] + len = @data[@index].ord raise DecodeError.new("limit exceeded") if @limit < @index + 1 + len d = @data[@index + 1, len] @index += 1 + len @@ -1371,7 +1372,7 @@ class Resolv limit = @index if !limit || @index < limit d = [] while true - case @data[@index] + case @data[@index].ord when 0 @index += 1 return d