check Ruby strings for embedded null bytes

The RGSS doesn't do it. But doing it shouldn't be a problem, as it's the
correct way. If a game is broken by this commit (unlikely), then the game
needs to be fixed as silent truncation is highly unlikely to be wanted.
This commit is contained in:
cremno 2014-09-02 19:09:17 +02:00
parent a365a7a754
commit 29dfda0011
2 changed files with 2 additions and 2 deletions

View File

@ -189,7 +189,7 @@ rb_get_args(int argc, VALUE *argv, const char *format, ...)
if (!RB_TYPE_P(tmp, RUBY_T_STRING)) if (!RB_TYPE_P(tmp, RUBY_T_STRING))
rb_raise(rb_eTypeError, "Argument %d: Expected string", argI); rb_raise(rb_eTypeError, "Argument %d: Expected string", argI);
*s = RSTRING_PTR(tmp); *s = StringValueCStr(tmp);
++argI; ++argI;
break; break;

View File

@ -32,7 +32,7 @@ DEF_TYPE(Bitmap);
static const char *objAsStringPtr(VALUE obj) static const char *objAsStringPtr(VALUE obj)
{ {
VALUE str = rb_obj_as_string(obj); VALUE str = rb_obj_as_string(obj);
return RSTRING_PTR(str); return StringValueCStr(str);
} }
void bitmapInitProps(Bitmap *b, VALUE self) void bitmapInitProps(Bitmap *b, VALUE self)