[Win32utils-devel] win32-security, 1.9.x, encoding issue?

Daniel Berger djberg96 at gmail.com
Mon Aug 3 10:03:57 EDT 2009


On Sun, Aug 2, 2009 at 7:00 PM, Heesob Park<phasis at gmail.com> wrote:
> Hi,
>
> 2009/8/2 Daniel Berger <djberg96 at gmail.com>:
>> Hi,
>>
>> Windows Vista Home Premium
>> ruby 1.9.2dev (2009-07-18 trunk 24186) [i386-mswin32_90]
>>
>> I noticed there was an ordinal bug in win32-security and Ruby 1.9.x. I fixed
>> those easily enough, but now we're left with this:
>>
>>  1) Error:
>> test_string_to_sid(TC_Win32_Security_Sid):
>> ArgumentError: invalid byte sequence in US-ASCII
>>
>> c:/Users/djberge/workspace/win32-security/lib/win32/security/sid.rb:111:in
>> `strip'
>>
>> c:/Users/djberge/workspace/win32-security/lib/win32/security/sid.rb:111:in
>> `string_to_sid'
>>    test/test_sid.rb:62:in `test_string_to_sid'
>>
>> Where line 111 is the last line of this:
>>
>> def self.string_to_sid(string)
>>   sid_buf = 0.chr * 80
>>   string_addr = [string].pack('p*').unpack('L')[0]
>>
>>   unless ConvertStringSidToSid(string_addr, sid_buf)
>>      raise Error, get_last_error
>>   end
>>
>>   sid_buf.strip
>> end
>>
>> I searched on the web but I wasn't really sure what the best or correct
>> solution was. I really hope we don't have to mess around with file
>> encodings.
>>
> Either
> sid_buf = (0.chr * 80).force_encoding('ASCII-8BIT')
> or
> sid_buf.force_encoding('ASCII-8BIT').strip
>
> And it means 1.9.x source code is not compatible with 1.8.x.
>
> Refer to http://blog.grayproductions.net/articles/ruby_19s_string

Thanks. Fixed, updated and released.

Regards,

Dan


More information about the win32utils-devel mailing list