diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c index 6f68e46cf1..4a9cd6f1d9 100644 --- a/ext/stringio/stringio.c +++ b/ext/stringio/stringio.c @@ -961,6 +961,7 @@ strio_ungetc(VALUE self, VALUE c) } else { StringValue(c); + if (RSTRING_LEN(c) == 0) return Qnil; enc = rb_enc_get(ptr->string); enc2 = rb_enc_get(c); if (enc != enc2 && enc != rb_ascii8bit_encoding()) {