Bug #7526

infinit loop in Registry::each_value

Added by first last over 2 years ago. Updated about 2 years ago.

[ruby-core:50627]
Status:Assigned
Priority:Normal
Assignee:Usaku NAKAMURA
ruby -v:All Backport:

Description

in win32/registry.rb :
begin
type, data = read(subkey)
rescue Error
next
end
the correction :
rescue Error
index += 1
next
end

I think that using Registry::info to get the number of values (also number of subkeys in each_key)
is a better solution so to skip problematic values.

also a limitation in Registry::read
when REG_BINARY
[ type, data ]

should be :
when REG_BINARY, REG_NONE, REG_LINK, REG_RESOURCE_LIST, REG_RESOURCE_REQUIREMENTS_LIST
[ type, data ]

instead of raising an exception for those types (in regedit.exe REG_NONE is equivalent to REG_BINARY)

History

#1 Updated by Usaku NAKAMURA over 2 years ago

  • Status changed from Open to Assigned
  • Assignee set to Usaku NAKAMURA
  • Target version set to 2.0.0

#2 Updated by first last over 2 years ago

rubyhack (first last) wrote:

the correction :
rescue Error
index += 1
next
end

that is: add only the line: "index += 1" to the lib and the bug is fixed

#3 Updated by Yusuke Endoh about 2 years ago

  • Target version changed from 2.0.0 to next minor

Let me know if there is any popular application that suffers from this issue.

Yusuke Endoh mame@tsg.ne.jp

Also available in: Atom PDF