[#10193] String.ord — David Flanagan <david@...>

Hi,

41 messages 2007/02/05
[#10197] Re: String.ord — Yukihiro Matsumoto <matz@...> 2007/02/06

Hi,

[#10198] Re: String.ord — David Flanagan <david@...> 2007/02/06

Yukihiro Matsumoto wrote:

[#10199] Re: String.ord — Daniel Berger <djberg96@...> 2007/02/06

David Flanagan wrote:

[#10200] Re: String.ord — David Flanagan <david@...> 2007/02/06

Daniel Berger wrote:

[#10208] Re: String.ord — "Nikolai Weibull" <now@...> 2007/02/06

On 2/6/07, David Flanagan <david@davidflanagan.com> wrote:

[#10213] Re: String.ord — David Flanagan <david@...> 2007/02/06

Nikolai Weibull wrote:

[#10215] Re: String.ord — "Nikolai Weibull" <now@...> 2007/02/06

On 2/6/07, David Flanagan <david@davidflanagan.com> wrote:

[#10216] Re: String.ord — David Flanagan <david@...> 2007/02/07

Nikolai Weibull wrote:

[#10288] Socket library should support abstract unix sockets — <noreply@...>

Bugs item #8597, was opened at 2007-02-13 16:10

12 messages 2007/02/13

[#10321] File.basename fails on Windows root paths — <noreply@...>

Bugs item #8676, was opened at 2007-02-15 10:09

11 messages 2007/02/15

[#10323] Trouble with xmlrpc — James Edward Gray II <james@...>

Some of the Ruby code used by TextMate makes use of xmlrpc/

31 messages 2007/02/15
[#10324] Re: Trouble with xmlrpc — "Berger, Daniel" <Daniel.Berger@...> 2007/02/15

> -----Original Message-----

[#10326] Re: Trouble with xmlrpc — James Edward Gray II <james@...> 2007/02/15

On Feb 15, 2007, at 1:29 PM, Berger, Daniel wrote:

[#10342] Re: Trouble with xmlrpc — James Edward Gray II <james@...> 2007/02/16

While I am complaining about xmlrpc, we have another issue. It's

[#10343] Re: Trouble with xmlrpc — Alex Young <alex@...> 2007/02/16

James Edward Gray II wrote:

[#10344] Re: Trouble with xmlrpc — James Edward Gray II <james@...> 2007/02/16

On Feb 16, 2007, at 12:08 PM, Alex Young wrote:

Re: MIME decoding confused by non-MIME characters

From: Brian Candler <B.Candler@...>
Date: 2007-02-27 11:42:08 UTC
List: ruby-core #10441
On Tue, Feb 27, 2007 at 09:20:56AM +0000, Brian Candler wrote:
> irb(main):001:0> RUBY_VERSION
> => "1.8.5"
> irb(main):002:0> a = "b2s="
> => "b2s="
> irb(main):003:0> b = "\xef\xbb\xbf" + a
> => "\357\273\277b2s="
> irb(main):004:0> a.unpack("m")
> => ["ok"]
> irb(main):005:0> b.unpack("m")
> => ["$\000\e\332"]
> 
> That is, non-printable characters (here a UTF8-encoded BOM) are causing MIME
> unpack to return garbage.

I had a quick look in pack.c in 1.8.6-preview2. I think the problem is here:

    char *s;
    ...
                    if ((a = b64_xtable[(int)s[0]]) == -1) break;
                    if ((b = b64_xtable[(int)s[1]]) == -1) break;
                    if ((c = b64_xtable[(int)s[2]]) == -1) break;
                    if ((d = b64_xtable[(int)s[3]]) == -1) break;

A negative signed char will still be negative after casting to int, as can
be demonstrated like this:

---- 8< ----------------------------------------
#include <stdio.h>
int main(void)
{
  char *s = "\xff";
  printf("%d\n", (int)s[0]);   /* prints -1 */
  return 0;
}
---- 8< ----------------------------------------

So I think those entries need to be changed to

    b64_xtable[((unsigned char *)s)[0]]  ... etc

Regards,

Brian.

In This Thread