Feature #7526
closedinfinit loop in Registry::each_value
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)
Updated by usa (Usaku NAKAMURA) over 11 years ago
- Status changed from Open to Assigned
- Assignee set to usa (Usaku NAKAMURA)
- Target version set to 2.0.0
Updated by rubyhack (first last) over 11 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
Updated by mame (Yusuke Endoh) over 11 years ago
- Target version changed from 2.0.0 to 2.6
Let me know if there is any popular application that suffers from this issue.
--
Yusuke Endoh mame@tsg.ne.jp
Updated by usa (Usaku NAKAMURA) almost 7 years ago
- Status changed from Assigned to Closed
Applied in changeset trunk|r60257.
Treat REG_NONE just like REG_BINARY
- ext/win32/lib/win32/registry.rb (read, write): treat REG_NONE just like
REG_BINARY when reading and writing.
cf. [Bug #7526]
Updated by usa (Usaku NAKAMURA) almost 7 years ago
- Tracker changed from Bug to Feature
- ruby -v deleted (
All) - Backport deleted (
2.3: UNKNOWN, 2.4: UNKNOWN)