diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-08-09 03:48:59 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-08-09 03:51:43 +0000 |
commit | 40869aa9fc8ab194813b850071a43a5a52aff7d8 (patch) | |
tree | 5c0b4f873cea5dbc28bc31c1335aab823c5e5016 /ext/json | |
parent | 8a82bffe927e8928e304b9610a75ea07b0c4a798 (diff) | |
download | ruby-json-40869aa9fc8ab194813b8.tar.gz |
"to_s" is not guaranteed to return a string and calling RSTRING_ macros on them blindly can cause bus errors/segfaults. Found by nobu: [ruby-core:38867]
Diffstat (limited to 'ext/json')
-rw-r--r-- | ext/json/ext/generator/generator.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/json/ext/generator/generator.c b/ext/json/ext/generator/generator.c index a75118a..b410eb7 100644 --- a/ext/json/ext/generator/generator.c +++ b/ext/json/ext/generator/generator.c @@ -351,7 +351,7 @@ static void fbuffer_append(FBuffer *fb, const char *newstr, unsigned long len) static void fbuffer_append_str(FBuffer *fb, VALUE str) { - const char *newstr = RSTRING_PTR(str); + const char *newstr = StringValuePtr(str); unsigned long len = RSTRING_LEN(str); RB_GC_GUARD(str); |